news 2026/8/4 13:58:43

如何新建STM32工程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何新建STM32工程

如何新建STM32工程

目前STM32的开发方式主要有:基于寄存器的方式、基于标准库(库函数)的方式和基于HAL库的方式

1.基于寄存器的方式:用程序直接配置寄存器来达到我们想要的功能,这种方式的有点是直接、效率高.但STM32的寄存器太多了,这种方法不适用

2.基于库函数的方式:使用ST官方提供的封装好的函数,通过调用这些函数来间接地配置寄存器。由于ST对寄存器封装的比较好,所以这种方式既能满足对寄存器的配置,对开发人员也比较友好,有利于提高开发效率,所以我们使用这种方式来进行学习开发

3.基于HAL库的方式:可以使用图形化界面快速配置STM32。这种适合老手,这种方式隐藏了底层逻辑,如果对STM32不熟悉,不利于对水平的提高

新建工程流程

1.找个合适的位置新建用于存放工程的文件夹

2.找到图片中的这个位置

3.在上一个文件夹里再新建一个文件夹来存放本次工程

4.写个工程文件的名称

5.选择器件型号

6.找到STM32的启动文件,复制全部启动文件

7.回到工程文件夹新建一个Start文件夹,将复制的启动文件粘贴到里面

8.回到stm32f10x.h,找到如图三个文件

stm32f10x.h就是STM32的外设寄存器描述文件,作用是描述STM32有哪些寄存器和它对应的地址

下面两个system文件是用来配置时钟的

9.复制上图的三个文件,粘贴到Start文件夹

10.因为这个STM32是内核和内核外围的设备组成的,而且寄存器的内核配置文件和外围设备的描述文件不是一起的,所以我们还需要添加一个内核寄存器的描述文件

找到这两个内核的寄存器描述和内核配置文件,复制

粘贴到Start文件夹下

11.回到Keil将对应文件改名Start

然后添加已经存在的文件到组里来

添加这个启动文件

剩下的.c和.h文件都要添加

12.最后添加头文件路径

把Start文件夹添加进来

点击确定

13.回到工程文件夹,新建一个User文件夹用来放main函数

回到keil里添加组

改名叫User

右键添加新文件

创建main文件,路径记得选择在User

14.右键添加头文件,选stm32f10c.h

编写main函数

编译并建立工程

说明我的工程建设成功

不过只是它现在还是一个基于寄存器开发的工程

写个简单的代码

接好DAP与STM32

在keil里配置调试器

点击Setting

这样我们下载程序后会立马复位并执行

下面这个按钮是下载按钮,如果一切正常的话就会下载进STM32里

配置寄存器点灯(参考STM32的参考手册)

点灯代码:

%2Fimg%2Fimage-20260803010017195.png&pos_id=img-n4bcLviB-1785741870305)

熄灭代码:

上述这种操作寄存器的方式要去不断地查手册看对应寄存器的操作流程,即使是加上&、|、~、^这几个运算也会导致运算麻烦,容易出错的问题

所以接下来我们引入库函数

新建Library来存放库函数

找到并 导入库函数的源文件

再找到库函数的头文件复制粘贴过来

其中misc.c中是内核的库函数源文件

回到keil,添加Library组

同之前的步骤,添加已存在的文件

现在虽然库函数已经添加进来,但还不能使用

还要进行下面的操作

根据上面这个路径找到这三个文件复制

那个conf文件是用来配置库函数头文件的包含关系的,还有个用来参数检查的函数定义,这是所有库函数都需要的

两个it文件是用来存放中断函数的

粘贴到User目录下

回到User组里把那三个文件添加进来

在main.c文件的头文件进行右键打开头文件

找到

这个是一个条件编译,意思是:

如果你定义了USE_STDPERIPH_DRIVER(使用标准外设驱动)这个字符串,下面这个include conf.h文件才有效

复制选中这句

打开

粘贴到

头文件目录也要添加

编译发现0错误,0警告

这样我们基于库函数的工程就完成了

用库函数实现点灯的操作

这样能看函数的定义说明

补充:新建工程里的启动文件选择

前面的这一块不是只选了一个吗,现在我们来讲讲到底怎么选

根据这个表,先看是什么型号,再根据Flash容量的大小,看看你是哪一种

工程架构

startup是启动文件:启动文件内定义了中断向量表,中断服务函数等,中段服务函数中有个复位中断,这个是整个程序的入口。当STM32上电复位或者按下复位键之后就会进入复位中断函数执行,复位中断幻术组要做两件事情,第一是调用SystemInit函数,调用main函数。其他中断函数是达到触发条件后就会自动执行

SystemInit文件的作用:设置微控制器的启动,初始化嵌入式闪存接口、锁相环、更新系统内核的时钟变量

最右边的是那些文件就是外设和内核外设的寄存器描述。每个寄存器都封装了一大堆的函数,给我提供了人性化的函数调用方式。至于conf文件就是包含了头文件的文件,我们后面调用就只需要包含stm32f10x.h这个一个文件的头文件就可以达包含所有库函数头文件的效果,更加方便我们任意调用所有库函数

总结步骤

1.建立工程文件夹,Keil中新建工程,选择型号

2.工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹

3.工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组里

4.工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹

5.工程选项,C/C++,Define内定义USE_STDPERIPH_DRIVER

6.工程选项,Debug,下拉列表选择对应调试器,Settings,Flash Download里勾选Reset and Run

eil中新建工程,选择型号

2.工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹

3.工程里对应建立Start、Library、User等同名称的分组,然后将文件夹内的文件添加到工程分组里

4.工程选项,C/C++,Include Paths内声明所有包含头文件的文件夹

5.工程选项,C/C++,Define内定义USE_STDPERIPH_DRIVER

6.工程选项,Debug,下拉列表选择对应调试器,Settings,Flash Download里勾选Reset and Run

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/4 13:56:10

AI辅助科研绘图平台功能对比

在科研论文发表、项目申请与学术交流中,图表质量直接影响评审人对研究成果的第一印象。然而,制作一张能精准表达复杂分子机制或数据关系的图表,往往成为研究者的拦路虎。传统科研绘图软件虽然种类多,但要么学习门槛高,…

作者头像 李华
网站建设 2026/8/4 13:56:05

抖音音频提取终极指南:douyin-downloader免费工具完整教程

抖音音频提取终极指南:douyin-downloader免费工具完整教程 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback s…

作者头像 李华
网站建设 2026/8/4 13:54:24

5分钟掌握Lua最轻量JSON解析库:json.lua终极指南

5分钟掌握Lua最轻量JSON解析库:json.lua终极指南 【免费下载链接】json.lua A lightweight JSON library for Lua 项目地址: https://gitcode.com/gh_mirrors/js/json.lua 如果您正在寻找一款专为Lua设计的轻量级JSON解析库,那么json.lua无疑是您…

作者头像 李华
网站建设 2026/8/4 13:54:22

BP神经网络回归预测实战:交叉验证与Matlab实现

1. BP神经网络回归预测实战:从交叉验证到Matlab实现在工程预测和数据分析领域,BP神经网络因其强大的非线性拟合能力而广受欢迎。最近我在一个工业设备寿命预测项目中,成功应用了多输入单输出的BP神经网络模型,配合k折交叉验证方法…

作者头像 李华
网站建设 2026/8/4 13:53:18

教育平台电子教材解析工具:三步骤高效获取官方教学资源

教育平台电子教材解析工具:三步骤高效获取官方教学资源 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项目地址…

作者头像 李华
网站建设 2026/8/4 13:52:59

3步快速部署DDrawCompat:让Windows经典游戏在现代系统完美运行

3步快速部署DDrawCompat:让Windows经典游戏在现代系统完美运行 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/d…

作者头像 李华