一、安装 pack 支持包
pack是支持包文件,当你的板子连接到电脑时,keil5 怎么知道你的板子是哪个型号的,这就需要用到 pack 文件了。Keil 官方下载pack文件的地址:download | device pack
我这里使用的是 STM324 系列
随后直接一键下载,下载完毕后双击安装,它会自动检测你电脑上的keil软件的安装目录,然后自动安装。
后面你新建工程时,就会多出一个系列的选项
二、下载外设库
没有外设库的时候,我们需要一边看开发手册一边手动配置寄存器了,现在有了外设库,外设库封装了外设寄存器的操作,不必再手动配置寄存器,极大地提升了开发效率。
ST 官方外设库下载:STM32 Standard Peripheral Libraries - Products
不过这里可能需要先注册一下,注册流程比较简单,输入姓名和邮箱,然后在邮箱验证即可。整个过程花费的时间不会很长。
下载好以后就可以看到类似于下面的压缩包了,这里不光包含了外设库函数,也给了每种外设的操作示例。
三、搭建工程
搭建工程的关键是将一些必要文件引入到我们的工程中,至于我们的工程具体需要哪些文件,可以参考下面的工程结构图。
1、启动文件
程序运行之前需要先初始化运行环境
- 堆栈初始化
- 初始化中断向量表
- 调用复位中断服务函数
- 调用 SyStemInit 函数进行其他初始化
- main 函数跳转
这一切的操作都由 启动文件 startup_stm32f40xx.s 文件来完成,一般 .s 文件用汇编编写。其中 SyStemInit 函数在 system_stm32f4xx.h 文件中,对应的源文件 system_stm32f4xx.c 只能在官方提供的Example中找到。
文件名 | 位置 |
startup_stm32f40xx.s | Libraries—CMSIS—Device—ST—STM32F4xx—Source—Templates—arm |
system_stm32f4xx.h | Libraries—CMSIS—Device—ST—STM32F4xx—Include |
system_stm32f4xx.c | Project—STM32F4xx_StdPeriph_Examples—ADC—ADC_DMA |
注意:如果是stm32f10x 系列,启动文件会带有后缀,后缀的意义如下
2、外设寄存器和外设库
stm32f4xx.h 中保存了 STM32 操作各个外设所需的寄存器地址。stm32f4xx.h 中包含的部分内容:
外设库包含了操作外设的具体函数实现。其中 misc.c 包含了一些内核操作,如修改中断向量表偏移,其余文件都是一些常见的外设操作具体实现。
为了更加方便的使用外设库,ST 在例程中给我们提供了一个文件 stm32f4xx_conf.h,该文件可以一次引入所有的外设。(如果后续要使用该头文件,需要添加宏 USE_STDPERIPH_DRIVER)
文件名 | 位置 |
stm32f4xx.h | Libraries—CMSIS—Device—ST—STM32F4xx—Include |
外设库 | 源文件:Libraries—STM32F4xx_StdPeriph_Driver—src 头文件:Libraries—STM32F4xx_StdPeriph_Driver—inc |
stm32f4xx_conf.h | Project—STM32F4xx_StdPeriph_Examples—ADC—ADC_DMA |
3、内核寄存器
core_cm4.h 主要涉及到一些内核方面的配置。core_cmFunc.h、core_cmInstr.h、core_cmSimd.h是core_cm4.h 相关联的头文件
文件名 | 位置 |
core_cm4.h | Libraries—CMSIS—Include |
core_cmFunc.h core_cmInstr.h core_cmSimd.h | Libraries—CMSIS—Include |
4、中断处理函数文件
stm32f4xx_it.c 文件包含了一些中断处理函数的具体实现,如SVC中断、总线错误中断。
文件名 | 位置 |
头文件:stm32f4xx_it.h 源文件:stm32f4xx_it.c | Project—STM32F4xx_StdPeriph_Examples—ADC—ADC_DMA |
四、整理
现在大致了解了一个基本的工程需要哪些文件,下面就需要将这些文件分开存放,全堆到一起未免太乱了。
1、Start目录
这个目录下保存一些启动所需的文件,如 startup_stm32f40xx.s、system_stm32f4xx.h。除此之外,我们将一些平时不会改动的文件也放到这里。
2、Library 目录
该目录就用于保存外设库的头文件和源文件。这里直接把原本的 inc 和 src 目录拷贝过来了
3、User 目录
该目录下就保存 main 函数以及一些可能需要使用或者修改的文件
五、新建 Keil 工程中添加宏定义
如果要使用头文件 stm32f4xx_conf.h ,需要添加宏 USE_STDPERIPH_DRIVER
如果报错,可以双击跳转,下面这个错误是需要添加当前开发板型号的宏 STM32F40_41xxx
参考文章:
学习使用HAL库进行STM32软件开发 | 安装keil-MDK及STM32F4支持包 | 2022.4.5/星期二/天气晴_杨肉师傅的博客-CSDN博客
下载stm32f4xx标准外设库_stm32f4支持包下载_枫中眸zc的博客-CSDN博客