STM32标准库搭建示例(STM32F103C8T6)
1.官网下载标准库文件
STM32F10x标准库链接
2:新建keil5项目
2.1新建项目文件夹
在自己放项目的文件夹建一个文件夹,存放自己的项目
2.2keil5新建项目
打开keil5新建项目
自己的项目名称,放在刚才新建的文件夹里,便于寻找
选择芯片型号
直接点击OK
然后会生成一下文件
不好看,把这个删了,你也可以改名
3.开始正式移植
3.1移植驱动文件
在自己建的项目中,再建一个Driver文件夹,便于放驱动文件(文件名可以根据自己改)
打开下载好的标准库文件
文件夹或文件名 | 说明 |
| 包含 和 驱动库 |
| 示例工程 |
| 可能包含 LCD 或调试工具代码 |
| 标准库帮助文档(建议阅读) |
进入这个项目路径
\STM32F10X\stsw-stm32054_v3-6-0\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
复制启动文件到这个刚才建的Driver文件夹里
然后回到这个STM32F10x,在复制这三个文件到Driver文件夹里
然后回到这个CoreSupport- 文件夹,把两个内核文件复制过来,因为STM32F10X是M3内核的
驱动文件就这些
3.2移植相关库文件
在自己的项目文件中创建一个存放外设库的文件夹library
打开标准库文件,打开到STM32F10x_StdPeriph_Driver。复制inc和src文件夹到你的library文件夹中
这两个文件是你的gpio,iic,spi等各种外设库接口
4.建立main.c文件
在自己的项目中建一个User文件夹,然后再建一个main.c文件
然后再打开标准库的文件夹STM32F10x_StdPeriph_Template,复制一下文件,放到User文件夹里,是用来配置库函数头文件的包含关系的,以及里面还有个用来参数检查的函数定义,这是所有库函数都需要的
5.开始往keil5中添加文件,
添加文件的时候,要选全部显示,然后要把全部的不管.c.h.s什么的都要加上,不要丢,不然后面编译出现找不到文件而错误
如下
打开keil,刚开的那个项目,也可从你的文件项目中打开
这个就是你的文件项目,双击打开就行,前提是你没关之前的项目,
5.1开始添加文件组
点击这个小三只,然后再点击2中的文件,然后创建一个User的文件,之后点击Add
5.2进去User,点击添加全部文件
全部添加
点一次Add就行,然后就点击close,然后回来看自己是否添加了,然后点OK
可以点击加号,看看是否有文件
然后添加其他library和Driver,也是使用同样的方法,这里面两个文件夹,一个放着.c文件,一个放着.h文件,.h文件等会挂路径就找到了,但是直接点击两个文件夹,所有的文件自己添加就行,两个文件中的.h和.c都要加上
这时候你会发现没有.h文件。不要着急
6.添加路径
下面添加路径,记得把自己的inc和src都添加进去
打开魔术棒,添加路径
一个一个来,重复步骤而已,不能同时一次选三个,一个一个选
顺路告诉这个编译器要使用这个标准库,在其添加 USE_STDPERIPH_DRIVER, STM32F10X_MD 这个宏
USE_STDPERIPH_DRIVER
-
- 启用标准库的驱动代码,确保库函数(如
GPIO_Init()
、USART_SendData()
)能被正确编译。
- 启用标准库的驱动代码,确保库函数(如
STM32F10X_MD
-
- 告诉标准库当前芯片的硬件资源(如 Flash 和 RAM 的地址范围),确保库函数操作正确的寄存器和内存区域。
- 例如:
-
-
- 如果错误地定义为
STM32F10X_HD
(高密度),但实际芯片是STM32F103C8T6
(中密度),会导致访问超出芯片实际的 Flash/RAM 范围,引发硬件错误。
- 如果错误地定义为
-
6.2添加头文件路径.h
记得把自己的inc和src都加上去
7:开始测试
点击mian.c,然后右击鼠标,然后添加头文件
编写程序,底下多留一个空
然后点击魔术棒,然后选择5,因为是stm32f103的芯片,其他芯片对应的版本自己百度去
然后直接全部编译,0错误0警告进可以了,就可以开始你的第一步了
百度网盘链接
通过网盘分享的文件:标准库
链接: 百度网盘 请输入提取码 提取码: xf1c