用keil-MDK建立STM32标准库工程空模板(超详细图文并茂)
目录
虽然知道正点原子有现成的STM32标准库工程模板,但还是想自己从头开始建立一个自己的模板。一是想要一个干净的空模板,后续编程想要加什么就加什么,别人的工程的话总是有很多不需要的文件,看着乱乱的。二是加深对编程的理解,知道一个工程必须具备哪些基本文件和基本配置,以后报错的时候知道在哪报错,提高纠错能力。
初学STM32单片机的时候,往往就倒在了第一步,因为keil-MDK的环境配置比较繁琐,中途会出各种问题。环境配置好后,需要建立一个能跑的工程模板也比较繁琐,需要查找各种资料,这也需要耐心,但这是学习单片机必须经历的过程,后面的开发过程会更加具有挑战,所以也不能倒在这第二步。
一、建立工程文件
1、点击建立新项目
2、命名Templete后保存
3、选择STM32F103C8芯片。
需要提前安装相应芯片包Keil.STM32F1xx_DFP.2.3.0,链接:https://pan.baidu.com/s/1gI8cJoeObojpUuQRnHE6kQ
提取码:bmes
4、直接点击OK。
5、建立的工程页面如下所示。
二、准备所有需要的文件
6、在工程文件夹里建立如下3个文件夹FWLIB、USER、CORE。
FWLIB放标准库函数的.h文件和.c文件;
USER放置main.c和其他用户文件;
CORE放置Coetex-M3内核文件和启动文件。
7、在官方固件库中找到inc和src文件夹,复制到FWLIB文件夹中。
文件夹路径:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver
官方固件库:链接:https://pan.baidu.com/s/1hQGcZX8kKA31282x__TlYg
提取码:9v8w
8、在官方固件库中找到下面两个文件,复制到CORE文件夹中。
文件夹路径:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
9、在官方固件库中找到下面启动文件,复制到CORE文件夹中。
文件夹路径:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
10、在官方固件库中找到下面3个文件,复制到USER文件夹中。
文件路径:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x。
在官方固件库中找到下面4个文件,复制到USER文件夹中。
文件路径:STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
三、添加所有需要的文件
11、在项目文件夹上右键,点击工程文件管理器
12、点击项目名称,建立项目内的三个文件夹,名字和之前的一样FWLIB、USER、CORE。
13、FWLIB添加之前复制过来的FWLIB/src文件内的所有.c源文件。这是标准库函数.c源文件。
14、USER添加之前复制过来的USER文件内的所有.c源文件,也就下图3个.c源文件
15、CORE添加之前复制过来的CORE文件内的下图两个文件。
一个是内核文件,一个是启动文件。
启动文件要根据所用芯片falsh闪存容量选择,小容量选择后缀ld.s,中容量选择md.s,大容量选择hd.s,STM32F103C8是中容量,详细内容请自行百度。
16、全部添加完后如下图所示。
四、编译
17、点击选项配置,点击C/C++,在Define框中填写:STM32F10X_MD,USE_STDPERIPH_DRIVER。
如果你用的是小容量那么 STM32F10X_LD,大容 量修改为 STM32F10X_HD,和选择启动文件一样,MD是中等容量。
这里是配置一个全局的宏定义变量,因为 3.5 版 本的库函数在配置和选择外设的时候是通过宏定义来选择的。
18、这里是把项目内所有用到的.h头文件路径加进来,这样后续编译之后会自动添加进来。反正用到一个.h头文件,这里就要添加其所在路径。
19、删掉原来main.c内容,写入以上最简单的程序,最后多加一个空行,否则报错。这里用最简单的程序就行,验证模板能不能跑通。
20、配置生成.HEX烧录文件。
21、编译工程,可以看到把所有用到的.h头文件加进来了,程序编译成功!一个空模板就建好了,后续可以自行移植和编写具体代码了。