[应用相关] STM32的介绍及MDK

[复制链接]
 楼主| qn7a12 发表于 2023-4-30 14:06 | 显示全部楼层
添加启动代码,以及.c 文件等。在Template文件夹下新建 3 个文件夹 CORE, OBJ 以及STM32F10x_FWLib。
CORE 用来存放核心文件和启动文件
OBJ 是用来存放编译过程文件以及hex 文
STM32F10x_FWLib 文件夹顾名思义用来存放 ST 官方提供的库函数源码文件。
存放的是固件库函数//////
 楼主| 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 文件,
 楼主| 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 下面
 楼主| 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里面有被调用
 楼主| 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 目录下面。
将固件库相关文件添加到工程中去。
 楼主| qn7a12 发表于 2023-4-30 14:09 | 显示全部楼层
 楼主| qn7a12 发表于 2023-4-30 14:09 | 显示全部楼层
右击Target1,选择Manage Project Items
修改工程结构。Project Targets一栏,我们将Target名字修改为Template,然后在Groups一栏删掉一个Source Group1,建立三个 Groups:USER,CORE,FWLIB。然后点击 OK,可以看到我们的 Target名字以及 Groups 情况。
 楼主| 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 而其他的可以不用添加。这里我们全部添加进来是为了后面方便,不用每次添加。
 楼主| qn7a12 发表于 2023-4-30 14:09 | 显示全部楼层
将 Groups 定位到 CORE , CORE 下面需要添加的文件为 core_cm3.c,startup_stm32f10x_hd.s
 楼主| qn7a12 发表于 2023-4-30 14:09 | 显示全部楼层
将Groups定位到User,USER 目录下面需要添加的文件为 main.c,stm32f10x_it.c,system_stm32f10x.c.
运行main.c。 main.c 文件, 复制已有的 main.c覆盖已有代码,然后进行编译。
 楼主| qn7a12 发表于 2023-4-30 14:09 | 显示全部楼层
正点原子提供的实验中,每个实验都有一个 SYSTEM 文件夹,下面有 3 个子目录分别为 sys,usart,delay,存放的是我们每个实验都要使用到的共用代码。
 楼主| qn7a12 发表于 2023-4-30 14:10 | 显示全部楼层
找到我们实验光盘, 打开任何一个固件库的实验,可以看到下面有一个 SYSTEM 文件夹。
在工程中新建一个组,命名为 SYSTEM,然后加入这三个文件夹下面的.c 文件分别为 sys.c,delay.c,usart.c.
 楼主| qn7a12 发表于 2023-4-30 14:10 | 显示全部楼层
接下来我们将对应的三个目录(sys,usart,delay)加入到 PATH 中去,因为每个目录下面都有相应的.h 头文件
 楼主| qn7a12 发表于 2023-4-30 14:10 | 显示全部楼层
 楼主| qn7a12 发表于 2023-4-30 14:11 | 显示全部楼层
关键 文件

60572644e068ee71d1.png
 楼主| qn7a12 发表于 2023-4-30 14:11 | 显示全部楼层
F407新建工程注意点
1.STM32需要的文件
system_stm32f4xx.h是片上外设接入层系统头文件。主要是申明设置系统及总线时钟相关的函数。

这个里面有一个非常重要的SystemInit()函数申明,这个函数在我们系统启动的时候都会调用,用来设置系统的整个系统和总线时钟。
 楼主| qn7a12 发表于 2023-4-30 14:12 | 显示全部楼层
stm32f4xx.h是STM32F4片上外设访问层头文件。这个文件就相当重要了,只要你做STM32F4开发,你几乎时刻都要查看这个文件相关的定义。

这个文件打开可以看到,里面非常多的结构体以及宏定义。这个文件里面主要是系统寄存器定义申明以及包装内存操作。
同时该文件还包含了一些时钟相关的定义,FPU和MPU单元开启定义,中断相关定义等等
 楼主| qn7a12 发表于 2023-4-30 14:12 | 显示全部楼层
stm32f4xx_it.c和stm32f4xx_it.h里面是用来编写中断服务函数,中断服务函数也可以随意编写在工程里面的任意一个文件里面,个人觉得这个文件没太大意义。
 楼主| qn7a12 发表于 2023-4-30 14:12 | 显示全部楼层
stm32f4xx_conf.h是外设驱动配置文件。文件打开可以看到一堆的#include,这里建立工程的时候,可以注释掉一些你不用的外设头文件。
 楼主| qn7a12 发表于 2023-4-30 14:12 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部