STM32F401标准固件库配置

本文详细介绍了使用KEIL MDKV5.21和STM32F4xx_DSP_StdPeriph_Lib_V1.8.0固件库在STM32F401RCT6 MCU上搭建开发环境的过程。特别关注了配置外部8M晶振、修改stm32f4xx.h和system_stm32f4xx.c文件,以及解决程序停留在LDRR0,=SystemInit的问题。

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也是可以的。

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值