STM32
直播中

caosurround

12年用户 884经验值
私信 关注
[问答]

使用STM32F030时,用wait函数的延时时间不对,为什么?

使用STM32F030时,发现用wait函数的延时时间不对,比正常速度快了6倍。在Mbed网站上发现,这个问题已经被记录下来,从Mbed的102版开始就有这个问题了。

回帖(1)

五斤麻辣油

2024-5-11 17:30:22
STM32F030在使用wait函数时,延时时间出现偏差的原因可能有以下几点:

1. 时钟配置问题:STM32F030的时钟配置可能不正确,导致系统时钟频率与预期不符。这会影响到wait函数的延时时间计算。请检查时钟树配置,确保系统时钟频率正确。

2. 中断优先级问题:在STM32F030中,中断优先级可能会影响wait函数的执行。如果中断优先级设置不当,可能会导致wait函数在执行过程中被中断,从而影响延时时间。请检查中断优先级设置,确保wait函数能够正常执行。

3. Mbed OS版本问题:如您所述,Mbed OS的102版本开始就存在这个问题。可以尝试升级到较新版本的Mbed OS,看是否能解决延时时间偏差的问题。

4. 代码优化问题:编译器在编译过程中可能会对代码进行优化,这可能会影响wait函数的执行时间。可以尝试关闭编译器优化,或者调整优化级别,看是否能解决问题。

5. 硬件问题:虽然不太可能,但也不能完全排除硬件问题。可以尝试使用其他STM32F030芯片,看是否能复现问题。

综上所述,要解决STM32F030使用wait函数时延时时间不对的问题,可以从时钟配置、中断优先级、Mbed OS版本、代码优化和硬件方面进行排查和调整。希望这些建议能对您有所帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分