打印
[应用相关]

STM32的介绍及MDK

[复制链接]
楼主: qn7a12
手机看帖
扫描二维码
随时随地手机跟帖
81
qn7a12|  楼主 | 2023-4-30 14:06 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
添加启动代码,以及.c 文件等。在Template文件夹下新建 3 个文件夹 CORE, OBJ 以及STM32F10x_FWLib。
CORE 用来存放核心文件和启动文件
OBJ 是用来存放编译过程文件以及hex 文
STM32F10x_FWLib 文件夹顾名思义用来存放 ST 官方提供的库函数源码文件。
存放的是固件库函数//////

使用特权

评论回复
82
qn7a12|  楼主 | 2023-4-30 14:07 | 只看该作者
将官方的固件库包里的源码文件复制到我们的工程目录文件夹下面。
打开官方固件库包,定位到STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver
将目录下面的 src,inc 文件夹 copy 到我们刚才建立的 STM32F10x_FWLib 文件夹下面。
src 存放的是固件库的.c 文件
inc 存放的是对应的.h 文件,

使用特权

评论回复
83
qn7a12|  楼主 | 2023-4-30 14:08 | 只看该作者
将固件库包里面相关的启动文件复制到我们的工程目录 CORE 之下
打开官方固件库包,定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport
将文件 core_cm3.c和 文 件 core_cm3.h 复 制 到 CORE 下 面
Core_cm3是cm3底层的一些文件
○ 定 位 到 目 录STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
将里面 startup_stm32f10x_hd.s 文件复制到 CORE 下面

使用特权

评论回复
84
qn7a12|  楼主 | 2023-4-30 14:08 | 只看该作者
8 . 定位到目录:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x

将里面的三个文件 stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,复制到我们的 USER目录之下
system_stm32f10x.c,比较重要,定义了系统初始化,在startup里面有被调用

使用特权

评论回复
85
qn7a12|  楼主 | 2023-4-30 14:09 | 只看该作者
定位到目录STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template
将 4 个文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h 复制到 USER 目录下面。
将固件库相关文件添加到工程中去。

使用特权

评论回复
86
qn7a12|  楼主 | 2023-4-30 14:09 | 只看该作者

使用特权

评论回复
87
qn7a12|  楼主 | 2023-4-30 14:09 | 只看该作者
右击Target1,选择Manage Project Items
修改工程结构。Project Targets一栏,我们将Target名字修改为Template,然后在Groups一栏删掉一个Source Group1,建立三个 Groups:USER,CORE,FWLIB。然后点击 OK,可以看到我们的 Target名字以及 Groups 情况。

使用特权

评论回复
88
qn7a12|  楼主 | 2023-4-30 14:09 | 只看该作者
往 Group 里面添加我们需要的文件。

右键点击点击Tempate,选择选择 Manage Project Itmes,然后选择需要添加文件的 Group,这里第一步我们 选 择 FWLIB , 然 后 点 击 右 边 的 Add Files, 定 位 到 我 们 刚 才 建 立 的 目 录STM32F10x_FWLib/src 下面,将里面所有的文件选中(Ctrl+A),然后点击 Add。
注意。如果我们只用到了其中的某个外设,我们就可以不用添加没有用到的外设的库文件。例如我只用 GPIO,我可以只用添加 stm32f10x_gpio.c 而其他的可以不用添加。这里我们全部添加进来是为了后面方便,不用每次添加。

使用特权

评论回复
89
qn7a12|  楼主 | 2023-4-30 14:09 | 只看该作者
将 Groups 定位到 CORE , CORE 下面需要添加的文件为 core_cm3.c,startup_stm32f10x_hd.s

使用特权

评论回复
90
qn7a12|  楼主 | 2023-4-30 14:09 | 只看该作者
将Groups定位到User,USER 目录下面需要添加的文件为 main.c,stm32f10x_it.c,system_stm32f10x.c.
运行main.c。 main.c 文件, 复制已有的 main.c覆盖已有代码,然后进行编译。

使用特权

评论回复
91
qn7a12|  楼主 | 2023-4-30 14:09 | 只看该作者
正点原子提供的实验中,每个实验都有一个 SYSTEM 文件夹,下面有 3 个子目录分别为 sys,usart,delay,存放的是我们每个实验都要使用到的共用代码。

使用特权

评论回复
92
qn7a12|  楼主 | 2023-4-30 14:10 | 只看该作者
找到我们实验光盘, 打开任何一个固件库的实验,可以看到下面有一个 SYSTEM 文件夹。
在工程中新建一个组,命名为 SYSTEM,然后加入这三个文件夹下面的.c 文件分别为 sys.c,delay.c,usart.c.

使用特权

评论回复
93
qn7a12|  楼主 | 2023-4-30 14:10 | 只看该作者
接下来我们将对应的三个目录(sys,usart,delay)加入到 PATH 中去,因为每个目录下面都有相应的.h 头文件

使用特权

评论回复
94
qn7a12|  楼主 | 2023-4-30 14:10 | 只看该作者

使用特权

评论回复
95
qn7a12|  楼主 | 2023-4-30 14:11 | 只看该作者
关键 文件

使用特权

评论回复
96
qn7a12|  楼主 | 2023-4-30 14:11 | 只看该作者
F407新建工程注意点
1.STM32需要的文件
system_stm32f4xx.h是片上外设接入层系统头文件。主要是申明设置系统及总线时钟相关的函数。

这个里面有一个非常重要的SystemInit()函数申明,这个函数在我们系统启动的时候都会调用,用来设置系统的整个系统和总线时钟。

使用特权

评论回复
97
qn7a12|  楼主 | 2023-4-30 14:12 | 只看该作者
stm32f4xx.h是STM32F4片上外设访问层头文件。这个文件就相当重要了,只要你做STM32F4开发,你几乎时刻都要查看这个文件相关的定义。

这个文件打开可以看到,里面非常多的结构体以及宏定义。这个文件里面主要是系统寄存器定义申明以及包装内存操作。
同时该文件还包含了一些时钟相关的定义,FPU和MPU单元开启定义,中断相关定义等等

使用特权

评论回复
98
qn7a12|  楼主 | 2023-4-30 14:12 | 只看该作者
stm32f4xx_it.c和stm32f4xx_it.h里面是用来编写中断服务函数,中断服务函数也可以随意编写在工程里面的任意一个文件里面,个人觉得这个文件没太大意义。

使用特权

评论回复
99
qn7a12|  楼主 | 2023-4-30 14:12 | 只看该作者
stm32f4xx_conf.h是外设驱动配置文件。文件打开可以看到一堆的#include,这里建立工程的时候,可以注释掉一些你不用的外设头文件。

使用特权

评论回复
100
qn7a12|  楼主 | 2023-4-30 14:12 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则