Keil5创建STM32工程详细步骤分享
1. 建立本地工程文件夹
名称 | 作用 |
---|---|
Doc | 存放程序说明文件 |
Libraries | 存放库文件 |
Listing | 存放编译器编译时产生的C/汇编/链接的列表清单(如果不创建会生成在项目文件目录下Listings文件夹) |
Output | 存放编译产生的调试信息、hex文件、预览信息、封装库等 (如果不创建会生成在项目文件目录下Objects文件夹) |
Project | 存放工程 |
User | 用户编写的驱动文件 |
2. 本地文件夹创建好之后就把准备好的库文件添加到相应的文件夹下
(1)下载库文件
访问ST中文官网https://www.st.com/content/st_com/zh.html
我这边使用的F103芯片举例,如果是F4芯片则在高性能MCU里,这里就根据自己需求选择就好
选择需要的版本即可
下载好后可以看到文件中包含如下文件夹:
Libraries:文件夹下是驱动库的源代码及启动文件,这个文件非常重要,我们要使用的固件库就在这个文件中。
Project:文件夹下是用驱动库写的例子和工程模板,其中那些为每个外设写好的例程对我们非常有用,在学习的时候可以参考这里面的例程,非常全面。
Utilities:包含了基于ST官方实验板的例程,不需要用到,略过即可。
(2)工程目录文件夹内容清单
名称 | 作用 |
---|---|
Doc | 工程文件说明.txt |
Libraries | CMSIS:存放与CM3内核有关的库文件 ,STM32F10x_StdPeriph_Driver:STM32外设库文件 |
Listing | 暂时为空 |
Output | 暂时为空 |
Project | 暂时为空 |
User | stm32f10x_conf.h:用来配置库的头文件 stm32f10x_it.h:stm32f10x_c的头文件 stm32f10x_it.c:中断相关的函数都在这个文件夹中编写 main.c:main函数文件 (这些文件可以在下载的固件库文件夹\en.stm32f0_stdperiph_lib\STM32F0xx_StdPeriph_Lib_V1.6.0\Projects\STM32F0xx_StdPeriph_Templates下找到) |
3.打开KEIL5新建一个工程
工程创建到刚才新建的project文件夹下,如果选择芯片时没有想要的芯片,就要去下载pack包,pack包下载地址:https://www.keil.arm.com/devices/,然后搜索框中输入芯片的关键字,点击芯片名称,CMSIS Pack下蓝色可点击文字,下载后双击pack文件,系统会自动找到路径安装。
创建好工程后在左边包路径下创建如下文件:
工程内组文件夹内容清单如下:
名称 | 存放的文件 |
---|---|
STARTUP | startup_stm32f10x_md.s (CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm),这里具体选哪个.s文件根据芯片flash大小来选择。 |
SMSIS | core_cm3.c、system_stm32f10x.c(CMSIS\CM3下的子文件中) |
FWLB | STM32F10x_StdPeriph_Driver\src 文件夹下的全部C文件,即固件库 |
USER | 用户编写的文件,把刚才创建的USER文件夹下的文件添加到这里即可 |
4.配置魔术棒选项卡
(1)在Target选项卡中选中“Use MicroLIb”复选框,为的是在日后编写串口驱动的时候可以使用printf函数。
(2)在Output选项卡中把输出文件夹定位到工程目录下的“Output”文件夹,如果想在编译的过程中生成hex文件,那么把Create HEX File 选项勾上
(3)在Listing选项卡中把输出文件夹定位到工程目录下的“Listing”
(4)在C/C++选项卡中添加处理宏及编译器编译时查找的头文件路径,如果头文件路径添加错误,则编译的时候会报错“找不到头文件”
tips:在C/C++选项中添加宏,就相当于我们在文件中使用“#define”语句定义宏一样。在编译器中添加宏的好处就是,只要用了这个模板,就不用在源文件中修改代码。
这里图片中用的是STM32F030的宏,每种不同的芯片的宏也不同,可以自行查找。
作者:hk1551