用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头文件加进来了,程序编译成功!一个空模板就建好了,后续可以自行移植和编写具体代码了。

 

物联沃分享整理
物联沃-IOTWORD物联网 » 用keil-MDK建立STM32标准库工程空模板(超详细图文并茂)

发表评论