最近在跟着B站的江科大自化协Up主学习STM32,STM32工程建立比较复杂,虽然在学习工程中为了方便都是复制粘贴工程文件夹,但为了以后使用其他类型的STM32芯片时创建工程目录,特意记录一下STM32工程的建立步骤。
一、建立Start文件夹
在STM32工程目录下新建一个Start文件夹,Start文件夹包含了STM32的启动文件、外设寄存器描述文件、时钟配置文件和内核文件
1、1 启动文件
打开STM32的固件库,在“STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm”路径下找到对应系列的启动文件。
![](https://i-blog.csdnimg.cn/blog_migrate/8f8fb67d2ce18f5ba9bb8fbf8cac292e.png)
为了方便将上述文件全部拷贝进Start文件夹中。具体启动文件参考下表选择。
![](https://i-blog.csdnimg.cn/blog_migrate/12d07ea710b61bb35e5e16ca7e1dd33a.png)
1、2 外设寄存器描述文件和时钟配置文件
外设寄存器描述文件和时钟配置文件在“STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x”路径下。
![](https://i-blog.csdnimg.cn/blog_migrate/2517f568928d6ada92fba807bc26182c.png)
其中stm32f10x.h是外设寄存器配置文件,下面两个system文件是时钟配置文件。
1、3 内核文件
内核文件在“STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport”路径下。
![](https://i-blog.csdnimg.cn/blog_migrate/3c1b0b96faf6de2768ca9cebae8160b2.png)
将上述文件都拷贝进Start文件夹中。在Keil软件的工程文件中新建一个Start文件夹,从工程目录下的Start文件夹下添加文件。除了启动文件需要具体选择外,其他几类文件都需要添加进来
![](https://i-blog.csdnimg.cn/blog_migrate/81b6c3c4e6b0b91f18d87ac0c4d6ea95.png)
二、建立Library文件夹
Library文件夹下包含了STM32的库函数文件
库函数文件在“STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src”和“STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\inc”两个路径下,前者是.c文件,后者是.h文件。
![](https://i-blog.csdnimg.cn/blog_migrate/fcb8b263e7f727587111588d25050593.png)
![](https://i-blog.csdnimg.cn/blog_migrate/638f23e5c64bfcfebcaa2f1edc27d2c4.png)
在Keil软件的工程文件中新建一个Library文件夹,从工程目录下的Library文件夹下添加文件。
三、建立User文件夹
User文件夹包含了main.c文件、库函数配置文件和中断函数文件
main.c文件自己建立。库函数配置文件和中断函数文件在“STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template”路径下。为图中红框中的三个文件。
![](https://i-blog.csdnimg.cn/blog_migrate/32625a62182eeaf7544d99363e29f07f.png)
在Keil软件的工程文件中新建一个User文件夹,从工程目录下的User文件夹下添加文件。
四、建立System文件夹
System文件夹包含一些程序文件,方便将程序模块化。
五、Keil软件中的一些操作
![](https://i-blog.csdnimg.cn/blog_migrate/b543dc11e9a199f3df93735b4268546c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3d1a2194c90f9bb3f2758d82421fb038.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f249a5c87cdaa5da9d54aff1a546210e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9a0cfc43c3d99dbb8bed4cffc16f7ce6.png)