STM32
直播中

吴湛

9年用户 744经验值
擅长:可编程逻辑
私信 关注
[问答]

STM32F103 MCU执行到SystemClock_Config时钟初始化卡死怎么解决?

各位,新年好。有个奇怪的问题困扰我几天了,一直调不好。我用网上的比如野火、硬石的HAL程序,在Keill里就是不能运行下去,我查了一下,是卡在SystemClock_Config()这一段里出不来,具体就是卡在if((HAL_Gettick() - tickstart ) > HSE_TIMEOUT_VALUE)这一句上。已经排除硬件原因,我用3.5标准库文件编程,时钟程序是可以运行,但用HAL,就是不行。我自己用STM32cubeMX编了一个简单的LED点亮程序,也是不行。不知问题出在哪里了,折腾了我一个春节。
今天同事电脑上试过,他编译后可以运行。我把同样的程序弄到我电脑上,用keil打开编译,也不行了。郁闷啦。不知有没有同学碰到过类似情况,请教。
STM32cubemx版本是V6.4.0, Keil用V5.25和V5.35都试过。

回帖(2)

阎慧

2024-3-15 13:52:19
start.s开始的时候要先运行SystemInit,这里如果时钟配置不对,后面运行会受影响。从你的描述上看,是tick不增加,tick中断不能正常工作导致的。你用的外部晶振是多大的?
举报

康大争

2024-3-15 15:22:55
这个问题可能是由于编译器或IDE配置错误导致的。以下是一些可能的解决方法:

1. 确保你的Keil软件版本是最新的,并且已经安装了最新的设备支持包。有时升级或重新安装软件可以解决问题。

2. 检查你的编译器设置和链接脚本是否正确。你可以比较你的设置和同事的设置,看看是否有差异。

3. 如果你的同事的电脑上可以运行程序,那么可能是你的电脑上有其他软件或驱动程序冲突。尝试在一个干净的环境中运行程序,比如在一个虚拟机或另一个电脑上。

4. 如果你使用的是HAL库或CubeMX生成的代码,确保你已经正确配置了时钟和其他相关的引脚和外设。检查你的配置是否与你的硬件匹配。

5. 尝试在代码中添加调试输出语句,查看程序在哪里卡住。你可以使用串口或其他调试工具来输出一些消息,以便找到问题的所在。

这些是一些可能的解决方法,希望能帮助你解决问题。如果问题仍然存在,你可能需要进一步调试和排除可能的原因。
举报

更多回帖

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