Keil5建立STM32标准库模板
- 标准库模板建立
-
- 1. 准备工作
- 2. 新建一个工程文件夹
- 3. 使用MDK新建工程
- 4. 复制固件库源码到工程
- 5. 在MDK空工程中添加文件
- 6. 工程配置
- 7. 编译工程
标准库模板建立
环境声明:
keil版本:keil533
芯片型号:STM32F407ZG
ST标准固件库版本:V1.8
1. 准备工作
为了能够建立模板需要准备以下工作:
-
安装MDK keil5 v533(5系版本都差不多,以下简称MDK),保证能够正常使用;
-
ST官网下载芯片对应固件库,如不会可参照下面图片或者百度;
-
最后一句废话,你得有一台可以打字的电脑;
2. 新建一个工程文件夹
建立一个Template文件夹,里面再建3个以下子文件夹
存放内核相关文件:CORE
存放库相关文件:FWLIB
存放工程生成中间:OBJ
存放工程目录:USER
提醒:可以建立一个readme.txt文本文档记录工程信息
3. 使用MDK新建工程
芯片选用STM32F4078ZG。
路径放在刚才建立的USER文件夹中。工程名字你可以随意定,自己知道可以分清就可以。
具体如何建立工程请百度,此文着重讨论建立固件库模板,不讨论MDK如何建立新工程。
建好的空工程如下所示。
4. 复制固件库源码到工程
- 复制固件库中的底层库代码到FWLIB
将 D:\Keil533\ST-SPL\en.stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver下的inc和src文件夹复制到FWLIB下。
注:ST固件库解压后即可找到相对应文件,上方是我的解压后的文件路径。inc是头文件.h文件夹,src是.c文件夹。
- 复制固件库的启动文件到CORE
将D:\Keil533\ST-SPL\en.stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm中的F4对应的启动文件复制到CORE文件夹下。
接着将D:\Keil533\ST-SPL\en.stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Include中的F4(M4内核)相关的内核文件也复制到CORE文件夹下
复制后的CORE有如下文件:
- 复制固件库工程重要文件复制到USER
将D:\Keil533\ST-SPL\en.stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include下的头文件添加到USER文件夹中。
将D:\Keil533\ST-SPL\en.stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates下的工程模板中的历程复制过到USER
复制后的USER文件夹如下图所示:
5. 在MDK空工程中添加文件
按照Template下的目录添加组。
添加后的效果如下图所示。
每个组添加文件基本都在相应的文件夹下,添加的时候只添加.c文件。
FWLIB是固件库的底层库,可以根据需要添加相应模板的库。
6. 工程配置
以下配置都在MDK的魔法棒工具中。按照图片配置即可。PS:主要是打字累,看图方便。
-
更改工程文件输出到OBJ
-
添加全局定义标识符
添加一个全局宏定义标识符。添加方法是点击
魔术棒之后,进入 C/C++选项卡,然后在 Define 输入框连输入:
STM32F40_41xxx,USE_STDPERIPH_DRIVER。注意这里是两个标识符 STM32F40_41xxx
和 USE_STDPERIPH_DRIVER,他们之间是用逗号隔开的,请大家注意。
-
添加头文件路径
保证代码能够对应的头文件位置
-
更改HSE高速外部时钟频率
-
更改ARM编译器版本
7.
这里吃了点亏,可能ARM complier6对V1.8的库支持不好,导致编译一直出错,百度才发现是ARM编译器版本的问题。
7. 编译工程
注:编译工程师main.c可以全删写个空的main函数。
中断配置函数要全删除。
因为我们只是建立一个模板,没有功能,可以删除。
当当当!模板工程创建成功了。
文章第一次编辑日期:2021年3月14日
文章最后一次编辑日期:2021年3月14日