668 字
3 分钟
stm32标准库项目构建

新建一个项目#

keil5内配置步骤#

基本配置#

image-20251102200405656

然后在工程文件里面分别新建Start, LibraryUser三个文件夹(名称不做要求), 复制固件库里面的文件到工程文件夹:

image-20251102195857838

Start文件夹添加工程文件#

首先复制在...\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm内的startup文件, 具体复制哪一个根据你的芯片型号选择, 我这里选择后缀为_md的文件:

image-20251102200937015

接下来复制在...\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x内的三个文件, 分别对应着一个外设寄存器描述文件, 两个时钟配置文件:

image-20251102201140082

最后复制在...\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport下的文件, 也就是内核寄存器描述文件:

image-20251102201610944

把上述文件粘贴至刚刚创建的Start文件夹中:

image-20251102201828845

Library文件夹添加工程文件#

复制...\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\inc下的所有文件:

image-20251102202256225

复制...\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src下的所有文件:

image-20251102202324419

把上述文件粘贴至刚刚创建的Library文件夹中.

User文件夹添加工程文件#

复制...\STM32F10x_StdPeriph_Lib_V3.6.0\Project\STM32F10x_StdPeriph_Template下的这三个文件, 分别用来配置库函数头文件的包含关系和中断处理函数:

image-20251102202541838

把上述文件粘贴至刚刚创建的User文件夹中.

keil5中引入文件#

回到keil5, 创建三个Group, 名字分别对应:

image-20251102203108146

双击每一个文件夹, 将刚刚复制的文件全部添加进去:

image-20251102203345789

image-20251102203409106

image-20251102203434748

然后点击魔术棒->C/C++->Include Paths, 把刚刚三个文件夹全部include一下:

image-20251102203629137

如果需要在keil5里面编译和调试, 首先在魔术棒选项把编译器改成AC5, 在Debug选项选择你的烧录器, 我这里是ST-Link, 在Settings->Flash Download里勾选Reset and Run, 在Pack里取消勾选Enable即可.

C/C++选项添加宏定义USE_STDPERIPH_DRIVER:

image-20251102204951905

我们这里右键User文件夹, 添加新的.c文件作为main文件, 并且include一下stm32f10x.h文件, 注意最后一行留空, 不然会警告:

image-20251102204700740

image-20251102205216584

我们最后编译并烧录, 没有问题:

image-20251102205310635

VSCode配置步骤#

具体要下载的插件和前期配置参考这个博客Vscode开发STM32标准库-CSDN博客

打开VSCode, 选择左侧的EDIE图标, 导入刚刚的项目, 依次选择MDK->ARM:

image-20251102210214047

芯片支持包->From Disk添加所需的支持包:

image-20251102210519831

修改构建器选项, 构建配置->构建器选项->全局选项, 勾选Use MicroLIB, 在链接器取消勾选不生成Hex/Bin/S19等二进制文件:

image-20251102211156498

image-20251102211200000

烧录配置我这里使用ST-Link, 所以选择OpenOCD:

image-20251102211312502

最后在C/C++属性->预处理器定义里添加一个宏定义STM32F10X_MD:

image-20251102211509290

最后, 编译, 烧录, 大功告成:

image-20251102211639772

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

stm32标准库项目构建
https://mizuki.mysqil.com/posts/stm32标准库项目构建/
作者
minai
发布于
2025-11-02
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00