STM32F401标准固件库配置

发布于:2023-07-04 ⋅ 阅读:(126) ⋅ 点赞:(0)

1.开发环境

KEIL:MDK V5.21
		配置方式参考正点原子官方提供
固件库版本:STM32F4xx_DSP_StdPeriph_Lib_V1.8.0
	下载链接:[点击链接](https://my.st.com/content/my_st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries.html#products)
MCU:STM32F401RCT6
易出现问题点:*停留在LDR     R0, =SystemInit位置

2.相关文件配置

请参考正点原子的文件放置进行配置,配置后效果如下

在这里插入图片描述
配置完成后,我这里使用的外部晶振是8M,需要对stm32f4xx.h以及system_stm32f4xx.c进行修改

1.stm32f4xx.h文件修改晶振参数

在下图位置将文件默认的25M改成8M晶振配置(注意是定义了STM32F401XX的位置,因为我使用的MCU属于STM32F401XX系列)

在这里插入图片描述

2.system_stm32f4xx.c文件修改

在文件的开头找到STM32F401XX时钟的相关默认配置,由于F401的最大系统时钟频率只能是84M,我们在进行配置的时候也不能超过这个最大频率,如果不了解某个MCU,可以使用STM官方提供的STM32CubeMX进行查看时钟配置

在这里插入图片描述
如上图,我们只需要修改PPL_M的分频值,将25改成8分频
在这里插入图片描述
我这里使用的最大值84MHz,也可以配置42MHz,具体可以自己定义,建议配置成整数
在这里插入图片描述
HCLK计算方法:外部晶振HSE / PLL_M * PLL_N / PLL_P=8M/8*336/4=84M
配置完成后在option→C/C++ Define中添加STM32F401XX_HD,STM32F401xx
当我上面全部配置完成后,debug下载程序总是停止在 LDR R0, =SystemInit位置,起初以为是时钟没有位置正确,后面查看stm32f4xx.h文件USE_STDPERIPH_DRIVER定义没有打开,打开USE_STDPERIPH_DRIVER后就正常了,这里不定义在option→C/C++ Define中添加USE_STDPERIPH_DRIVER也是可以的。

在这里插入图片描述