可能的原因,
1.使用了裸机的delay_init函数
这个函数里面可能包含了以下代码
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
然后会导致以下现象:
执行 rt_thread_delay(1000); 实际延时为8秒
正确的做法是不需要做此配置,或者配置为:
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
2.HSE 时钟晶振设置不正确
网上的部分代码示例将HSE晶振设置为25M,这个时候如果自己的开发板上的外部晶振为8M,就需要手动修改配置

默认配置25M如下图:


修改为8M,
1.打开stm32f4xx.h,将上图的25000000改为8000000

本文分析了在STM32F4开发中,使用不当的SysTickdelay_init可能导致的8倍延时问题,以及如何正确配置HSE时钟和Systick初始化。建议检查并修正HSE值设置和SysTick源配置以确保准确的时间间隔。
最低0.47元/天 解锁文章
1832

被折叠的 条评论
为什么被折叠?



