STM32 创建一个工程文件(寄存器、标准库)

首先到官网下载对应型号的固件包:

像我的STM32F103C8T6的就下载这个:

依次打开:

.\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm

可以看到:

这些文件就是STM32F10X的启动文件

启动文件(startup file)是一个非常重要的文件。它的主要作用是完成单片机在启动时的初始化工作,并为 C 语言的运行时环境(runtime environment)做好准备。

启动文件是单片机程序正常运行的基础。它确保了在进入用户 main 函数之前,硬件和内存处于正确的状态,使程序可以正常工作。如果启动文件没有正确设置,可能会导致无法正确访问内存,堆栈溢出,或者中断无法正常处理等问题。

接下来去到工程文件夹下新建一个Start文件

因为如果直接放到工程的目录下就太乱了,也是因为这个操作等一下我们还有配置一下路径,因为工程只能识别到工程目录下的文件

然后把启动文件复制过来:

但是!我在工程文件添加文件时只添加了这个,虽然说其他文件也是在文件夹下的

这是为什么呢?

这就涉及到单片机的型号分类了,因为我的是属于MD这个的所以我就只添加了MD的,按照你的单片机型号来选择就可以了

接下来打开:

.\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

把这三个文件也复制到Start文件夹中

stm32f10x.h这个文件是STM32外围设备寄存器地址描述文件,里面包含了各寄存器的地址

另外两个则是用来配置时钟的

因为STM32是由内核和内核外围的设备组成的,所以还要添加内核寄存器的描述文件

依次打开:

.\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport

把这两个文件也放进Start文件夹下

到此为止工程的必要文件就弄完了

然后把Start文件添加到工程文件里就可以了

还记得我刚刚说的路径问题吗?

打开魔术棒:

在工程文件夹下添加一个User文件夹,用来放我们可以修改的文件,比如main函数文件

这个同理也是要在魔法棒里添加路径的

如果你想基于寄存器开发的话,新建工程文件到这里就可以了!

---------------------------------------------------------------------------------------------------------------------------------

接下来我说一下基于标准库开发的新建工程文件

依次打开:

.\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver\src

在工程文件夹下建立一个新文件夹Library,把这些文件复制过去

这个同理也是要在魔法棒里添加路径的

然后依次再打开:

.\STM32F10x_StdPeriph_Lib_V3.5.0\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template

这个conf文件是用来配置库函数头文件的包含关系的(conf文件是包含所有库函数的头文件的头文件,只要调用这个相当于调用所有库文件)

又因为stm32f10x.h这个头文件里包含了stm3f10x_conf.h这个文件,所以包含一个stm32f10x.h

就相当于包含了全部库函数!

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

把这三个文件粘贴到User文件夹下

然后接下来还需要一个宏定义

这个文件滑到最下面可以看到

这句的意思是当USE_STDPERIPH_DRIVER成立(即使用标准外设驱动时)stm3f10x_conf.h这个头文件才工作,默认不是这个,所以我们要自己配置

复制下USE_STDPERIPH_DRIVER

打开魔法棒然后在Define这里粘贴刚刚的内容

自此已新建好了一个基于标准库开发的工程

总结:

相关推荐
非概念44 分钟前
STM32学习笔记-----UART的概念
笔记·stm32·单片机·嵌入式硬件·学习
电子工程师UP学堂1 小时前
电子应用产品设计方案-10:全自动智能门禁系统设计方案
单片机·嵌入式硬件
mirevass1 小时前
【嵌入式软件-STM32】OLED显示屏+调试方法
stm32·单片机·嵌入式硬件·学习·keil
CodeAllen嵌入式2 小时前
嵌入式面试题练习 - 2024/11/15
数据结构·windows·嵌入式硬件·算法·嵌入式·嵌入式系统
Whappy0012 小时前
3.STM32之通信接口《精讲》之USART通信
stm32·单片机·嵌入式硬件
盼海2 小时前
STM32F4 RTC实时时钟STM32 Cube实例
stm32·单片机·实时音视频
linweidong4 小时前
芯原科技嵌入式面试题及参考答案
arm开发·科技·stm32·单片机·电路设计·蓝牙协议·嵌入式offer
芋头莎莎15 小时前
STM32 51单片机设计半导体制冷片温控设计
stm32·嵌入式硬件·51单片机
ღ 金龍戲水 ღ17 小时前
蓝桥杯竞赛单片机组备赛【经验帖】
经验分享·单片机·蓝桥杯