ST意法半导体
直播中

符筹荣

8年用户 1056经验值
私信 关注
[问答]

STM32H750更改时钟后,程序无法运行怎么解决?

各位大佬,我想请教一个问题:
为了验证H750主时钟频率和功耗的关系:
STM32CUBEMX配置STM32H750VBT6的主时钟为:100MHz,程序可以正常运行,然后将主时钟改至120MHz,发现程序无法运行,再改回100MHz,程序仍然无法运行,程序里面只写了一个定时器点亮LED灯,想咨询一下各位大佬,是不是H750的时钟不能随便修改?但是我另外一块板子设置成120MHz可以正常运行,很奇怪,谢谢

回帖(2)

孙奕

2025-3-12 16:13:57
既然另一块板子能跑120MHZ的话,那么理论上都应该可以的。

至于第一块板子具体发生了什么还真不好猜,这时候就要看调试工具大显身手了。


通过调试,看看定时器的状况,代码状况是否发生了异常。
举报

李莉

2025-3-13 17:14:48

在STM32H750VBT6上更改时钟频率后程序无法运行,可能是由于以下几个原因导致的。以下是一些可能的原因和解决方法:


1. 时钟配置问题



  • PLL配置错误:在STM32CubeMX中,时钟配置(尤其是PLL配置)必须正确设置才能支持更高的时钟频率。如果PLL配置不正确,可能会导致时钟不稳定或无法启动。

  • 时钟源选择:确保你选择的时钟源(如HSE或HSI)能够支持你设置的频率。例如,如果你使用的是外部晶振(HSE),确保晶振的频率和PLL配置是兼容的。


2. Flash等待状态



  • Flash等待状态设置:STM32H750的Flash存储器需要根据主时钟频率设置适当的等待状态。如果主时钟频率增加,但Flash等待状态没有相应调整,可能会导致程序无法正常运行。

  • 解决方法:在STM32CubeMX中,确保Flash等待状态设置正确。例如,当主时钟频率为120MHz时,通常需要设置Flash等待状态为4个周期。


3. 电源配置



  • 电压调节器模式:STM32H750的电压调节器模式(如LDO或SMPS)可能影响时钟频率的稳定性。在更高的时钟频率下,可能需要切换到更高效的电源模式(如SMPS)。

  • 解决方法:在STM32CubeMX中,检查电源配置,确保电压调节器模式适合你的时钟频率。


4. 时钟树配置



  • 时钟树配置错误:在STM32CubeMX中,时钟树的配置必须正确,确保所有时钟分频器和倍频器设置正确。

  • 解决方法:仔细检查时钟树配置,确保所有时钟路径都正确配置。


5. 硬件差异



  • 硬件差异:你提到另一块板子可以正常运行120MHz,而当前板子不行。这可能是因为硬件差异,如晶振质量、电源稳定性等。

  • 解决方法:检查硬件差异,尤其是晶振和电源部分,确保它们能够支持更高的时钟频率。


6. 调试和验证



  • 调试信息:使用调试器(如ST-Link)查看程序在启动时的行为,检查是否有任何异常或错误。

  • 时钟验证:使用STM32的时钟输出功能(如MCO)验证实际的时钟频率是否符合预期。


7. 恢复默认配置



  • 恢复默认配置:如果更改时钟后程序无法运行,可以尝试恢复STM32CubeMX的默认配置,然后重新生成代码,确保所有配置都回到初始状态。


8. 代码问题



  • 代码问题:确保你的代码中没有依赖于特定时钟频率的部分。例如,定时器的配置、延时函数等可能需要根据时钟频率进行调整。


总结


在更改STM32H750的时钟频率时,需要确保时钟配置、Flash等待状态、电源配置等都正确设置。如果遇到问题,建议逐步检查这些配置,并使用调试器进行验证。如果硬件存在差异,也需要考虑硬件对时钟频率的支持能力。


希望这些建议能帮助你解决问题!如果还有其他问题,欢迎继续讨论。

举报

更多回帖

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