极海MCU APM32F103 使用Keil5 新建工程,详细过程

2024-03-02 00:20

本文主要是介绍极海MCU APM32F103 使用Keil5 新建工程,详细过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、固件库及相关资料

极海:下载地址:APM32微控制器 (geehy.com) --APM32F103

华大:下载地址:小华半导体有限公司 (xhsc.com.cn)

本文是以极海单片机为示例的。

二、新建一个工程

1.新建文件夹“test”,在其目录下分别创建APP(或User)、broards、common、drive、include、scouce 6个文件夹,如下图:

2.把下载的固件库中的启动文件复制到新建的文件夹(CNBCC-N2-MAIN-SOFT)的对应目录下;

(1)dirver文件夹:找到APM32F10x_SDK_V1.7\Libraries\APM32F10x_StdPeriphDriver 目录下的inc 和src复制到dIver中

inc:是外设库的 .h文件

src:是外设库的 .c文件

 (2)common文件夹:

①:找到APM32F10x_SDK_V1.7\Libraries\CMSIS\Include 目录,把所有文件都复制到common文件夹中(不同的MCU此目录中的文件数量和名字不同),

②:找到APM32F10x_SDK_V1.7\Libraries\Device\Geehy\APM32F10x\Source\arm目录,把startup_apm32f10x_md.s文件复制到common文件夹中,这时可能有多个.s 文件,比如我使用的是APM32F103这款MCU就有3个此文件,而这款MCU的flash是128k的,所以复制的是startup_apm32f10x_md.s文件,我们只要根据MCU的flash大小选择对应的文件即可,以下是STM的选择方法,极海的MCU也根据这个选择就好了。

connom文件夹复制完成后如下图:

 (3)APP文件夹

①:找到APM32F10x_SDK_V1.7\Libraries\Device\Geehy\APM32F10x\Source 目录下的system_apm32f10x.c文件

②:找到APM32F10x_SDK_V1.7\Libraries\Device\Geehy\APM32F10x\Include目录下的apm32f0xx.h 和 system_apm32f0xx.h文件

③:APM32F10x_SDK_V1.7\Examples\GPIO\GPIO_Toggle\Include 目录下的main.h 和apm32f10x_int.h

④:APM32F10x_SDK_V1.7\Examples\GPIO\GPIO_Toggle\Source 目录下的main.c 和apm32f10x_int.c

第三和第四步的路径不唯一,只要从例程中复制就好了。

APP文件夹复制完成后如下图:

(4)Broads文件夹:在使用华大或者极海MCU的时候,我们会发现固件包中有一个Broads的文件夹,这个里面选择要使用define文件

找到APM32F10x_SDK_V1.7\Boards 复制到 新建工程文件的额bBroads文件夹中,如下图:

PS:如果想要缩小文件夹的大小,可以指复制对应的MINI文件夹

 3.使用keil5 建立工程

(1)打开安装好的keil5 ,可能会弹出以下界面,可以查看我们要使用MCU的固件包是否已经安装(固件包前面有绿色高亮的是已经安装的)当然如果自己已经确定安装过就不需要在查看了,直接关掉界面新建工程就好了。

(2)新建工程

(3)选择MCU

(4)工程配置

PS:第4步添加文件时,一定要添加.s文件,否则编译过不了的

(5)魔术棒

①:Target选项

第一步:选择ARM编译器,我使用的Keil是5.37版本,V5的编译器不知道为什么编译不成功,所以选择了V6,之前用的5.25和25.26两个版本就选择V5就可以了

第二步直接勾选就好了。

②:OutPut 选项

产生的目标文件直接保持默认就好了,会自动生成文件夹,生成HEX 文件的选项勾选一下

③:C/C++选项

第一步:添加define的文件,APM32F103_MINI要与Broad.c中的define名称对应

APM32F10x_MD要与选择的.s文件对应

第二步:语言选择C99

第三步:代码优化在调试的过程中就保持默认就好,不然在debug的过程中,会出现个别语句不能打断点的现象

第四步:添加头文件路径,把我们含有头文件的路径都添加进去

④:Debug选项

第一步:选择下载器

第二步:点击Setting,弹出右侧对话框,设置下载器

第三步:勾选Reset and Run,下载后就可以直接运行,不用重新上电。

(6)编译工程

这篇关于极海MCU APM32F103 使用Keil5 新建工程,详细过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/764328

相关文章

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright