在Keil MDK中创建STM32F4系列的工程模板(标准外设库)

一、前往ST官网下载标准外设库

  ST 官网地址 https://www.st.com/content/st_com/en.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  如无法下载,请先注册并登陆ST账号,然后再尝试下载。

二、根据个人风格创建文件夹目录

如:
  BSP 目录存放板级支持包
  Doc 目录存放文档资料
  App 目录存放用户应用代码
  Library 目录存放官方标准库
  Custom 目录存放自定义库文件
  Thirdparty 目录存放第三方库文件
  CMSIS 目录存放内核头文件
  Project 目录存放工程文件
  OBJ 目录存放编译中间文件

三、创建MDK工程,创建分组

  1)创建新的工程文件,并根据个人习惯保存在所需目录;

在这里插入图片描述
  2)选择合适的芯片型号(需已安装好相应的芯片包);

在这里插入图片描述

  3)点击“管理工程项目”,根据个人风格创建组(Groups),用于对不同类型文件或不同功能的源文件进行分组管理,一般工程下每个文件夹对应一个组(Group)比较好,不容易混乱;

在这里插入图片描述
在这里插入图片描述

四、添加系统启动必要源文件

  将源文件添加到对应的组(Group),对于STM32F4系列MCU来说,必要的源文件有三个:

  1、main.c(编写我们的main函数)

  2、startup_stm32f4xx.s(启动文件,用于初始化堆栈和中断向量表,根据实际所用型号选择对应的启动文件)
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm目录下存放了STMF4系列所有MCU的启动文件。

  3、system_stm32f4xx.c(系统时钟配置、Flash配置及其他配置等初始化)
STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates目录下存放有此文件。

在这里插入图片描述

五、添加头文件路径

  设置头文件包含路径,将ST官方标准库中的两个include文件夹和一个inc文件夹路径添加进去即可(最好复制到工程目录相应的文件夹下)。

STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Include
这个目录下是CMSIS相关的头文件

STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\CMSIS\Device\ST\STM32F4xx\Include
这个目录下是系统初始化相关的头文件

STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Libraries\STM32F4xx_StdPeriph_Driver\inc
这个目录下是片上外设模块相关的头文件

在这里插入图片描述

在这里插入图片描述

六、定义预处理符号

  在C/C++选项设置中,根据实际所用型号的芯片定义对应的预处理符号,具体可参考前面下载的ST官方标准库中 STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Templates\MDK-ARM 路径下的readme.txt文件;

在这里插入图片描述
在这里插入图片描述

七、时钟配置

  需要 特别注意 的一点是——必须根据实际使用的HSE时钟源频率来定义 HSE_VALUE 宏的值,可以在stm32F4xx.h头文件中直接修改此宏的值,或者如步骤6所示直接定义一个预处理符号

  定义的预处理符号会先于所有文件中的宏生效,又因stm32F4xx.h头文件中使用了 #if !defined (HSE_VALUE)HSE_VALUE 宏做了防重复定义处理,所以stm32F4xx.h中的 HSE_VALUE 宏不会生效。

在这里插入图片描述

  要使用预处理符号的方式定义一个宏并设置一个值,请使用 宏名=值 的语法,这相当C预处理器 #define 语句 #define 宏名 值

  修改HSE_VALUE宏的值后,还要在system_stm32F4xx.c源文件中修改PLL预分频系数,该文件默认将SYSCLK系统时钟配置为最高支持的频率。

  标准库文件默认外部晶振频率为25MHz,PLLM系数也默认为25,即默认主PLL输入时钟为1MHz。因此,假如我们实际的外部晶振频率为8MHz,则我们只需修改HSE_VALUE为8000000,同时修改PLLM为8即可配置SYSCLK系统时钟为最高频率了。

猜你喜欢

转载自blog.csdn.net/weixin_44567318/article/details/112567068