🧑🎓 个人主页:Silence Lamb
📖 本章内容:【固件库开发模板】
Silence-STM v1.0.0
基于固件库开发模板
一、前提准备
- 🚀从ST官网获取stm32f103标准例程固件库
- 🚀 参考文档
1.1🌳【新建工程】
- 🌳为了工程目录更加清晰,我们在本地新建一个“工程模板”文件夹
- 🌳在它之下再新建 6 个文件夹,具体如下
名称 | 作用 |
---|---|
Doc | 用来存放程序说明的文件,由写程序的人添加 |
Libraries | 存放的是库文件 |
Listing | 存放编译器编译时候产生的 C、 汇编 、链接的列表清单 |
Output | 存放编译产生的调试信息、hex 文件、预览信息、封装库等 |
Project | 用来存放工程 |
User | 用户编写的驱动文件 |
1.2🌳【添加文件】
-
🌳在本地新建好文件夹后,把准备好的库文件添加到相应的文件夹下:
-
🌳Libraries: Template\Libraries\CMSIS
-
🌳Libraries: Template\Librariesr
-
🌳User: main.c
#include "stm32f10x.h"
int main()
{
while(1)
{
}
}
二、新建工程
2.1🍑【新建工程】
- 🍑新建工程:Template(中文是模版的意思),保存在 ProjectRVMDK(uv5)文件夹下
- 🍑 选择 CPU 型号:这个根据你开发板使用的 CPU 具体的型号来选择
2.2🍑【组文件夹】
🍑在新建的工程中添加 5 个组文件夹
- 用来存放各种不同的文件,文件从本地建好的工程文件夹下获取
- 双击组文件夹就会出现添加文件的路径,然后选择文件即可
三、配置选项
3.1🍑【配置选项】
-
🍑Target 中选中微库“Use MicroLib”,为的是在日后编写串口驱动的时候可以使用 printf 函数
-
🍑 在 Output 选项卡中把输出文件夹定位到我们工程目录下的“output”文件夹
-
🍑如果想在编译的过程中生成 hex 文件,那么那 Create HEX File 选项勾上
-
🍑 在 Listing 选项卡中把输出文件夹定位到我们工程目录下的“Listing”文件夹
-
🍑STM32F10X_HD 宏:为了告诉 STM32 标准库,我们使用的芯片类型是 STM32 型号是大容量的,使 STM32 标准库根据我们选定的芯片型号来配置
-
🍑 USE_STDPERIPH_DRIVER 宏:为了让 stm32f10x.h 包含 stm32f10x_conf.h 这个头文件。
-
🍑在 C/C++ 选项卡中添加处理宏及编译器编译的时候查找的头文件路径
-
🍑如果头文件路径添加有误,则编译的时候会报错找不到头文件
-
Include Paths ”这里添加的是头文件的路径,如果编译的时候提示说找不到头文件,一般就是这
里配置出了问题。你把头文件放到了哪个文件夹,就把该文件夹添加到这里即可
3.2🍑【仿真器配置】
- 🍑Utilities 选择 Use Debug Driver
3.3🍑【CPU 型号】
3.4🍑【常见错误】
会导致报错的情况案例:
-
1、启动文件为startup_stm32f10x_md.s,C/C++的Define为 STM32F10X_HD,会报错 因为头文件定义与启动文件不一致
-
2、启动文件为startup_stm32f10x_md.sC/C++的Define为 STM32F10X_MD,驱动(Device)选择STM32F103ZE,会报错 因为STM32F103ZE系列芯片属于大容量芯片,而MD属于中容量芯片驱动文件 -