标题: STM32单片机程序运行很慢是什么原因? [打印本页]

作者: 红花无常    时间: 2023-3-18 12:03
标题: STM32单片机程序运行很慢是什么原因?
      请教大家了:昨天维修一台老仪器,遇到一个不常见的故障,就是程序运行很慢。比如,正常情况下,开机后进入自检,2秒结束,会有1秒的“滴”的一声提示,然后指示灯亮,OLED屏显示待机。现在是开机后进入自检,十几秒后结束,会有5秒的“滴”的一声提示,指示灯亮,OLED屏也是逐行以几倍的慢速亮,进入待机。随后的检测过程也是,放慢了很多倍。。。。。。这种情况一般会是哪里的问题呢?单片机是STM32F107,晶振25M,更换过晶振问题依旧存在。麻烦高手们帮我想想办法,谢谢了!

作者: szb314    时间: 2023-3-18 15:56
这是程序设计故意的,各种delay延时,前奏完事进死循环就快了
作者: 红花无常    时间: 2023-3-18 16:07
szb314 发表于 2023-3-18 15:56
这是程序设计故意的,各种delay延时,前奏完事进死循环就快了

谢谢您,可能是我表述得不太清楚,这台是故障机,只有它出现慢的症状,正常的没有。
作者: 13814888484    时间: 2023-3-18 16:15
检查晶振边上的2个20PF小电容和1M电阻,用错焊错都会导致晶体震荡减慢
作者: a399288395    时间: 2023-3-18 20:26
检查一下晶振部分!,外部晶振不工作就自动切到内部晶振,频率会降低!
作者: 红花无常    时间: 2023-3-18 23:25
谢谢楼上两位,看来还得回到晶振,明天试试检查一下晶振外围的电路。
作者: li64331218    时间: 2023-3-18 23:38
先检查一下时钟频率。如果没有问题,再把外设都屏蔽掉,逐个添加上去,看看是哪个引起的程序运行变慢。依次排查。
作者: zhuls    时间: 2023-3-20 14:30
a399288395 发表于 2023-3-18 20:26
检查一下晶振部分!,外部晶振不工作就自动切到内部晶振,频率会降低!

不会是这么简单的事,比如25MHz时,“滴”声是1.5KHz ,如要切到内振,显示还能正常(姑且略过“逐行以几倍的慢速亮”的问题),那此时的“滴”声就该会变成“嘟”声了。1秒的“滴”变成5秒,5倍速之差。。如果“滴”没变成“嘟”,再往下看:

我猜是外部某个部件出现的故障,导致MCU不停地在与故障部件进行通信,软件写的又不是很OK,没有错误陷阱,MCU一次又一次地"访问外设--待回应--没回应再访问---"才会卡成狗了。

作者: 红花无常    时间: 2023-3-20 15:17
非常感谢大家的帮助,问题已经找到了,从另一台仪器上取了一个芯片,换上去后OK了,看来就是芯片本身出问题了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1