可能的原因,
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,将