[应用方案] 单片机稳定性解决方法

[复制链接]
1351|16
 楼主| pixhw 发表于 2023-8-29 22:05 | 显示全部楼层 |阅读模式
单片机程序跑飞的三种现象、原因及解决方法。
一、数组越界(数组溢出)
现象:单片机程序在函数中运行时,总是在运行到函数末尾,要跳出函数时,程序跑飞。
原因:数组越界(数组溢出),函数中定义的数组元素的个数小于程序中实际使用的数组元素的个数,例如在函数中定义了一个数组ucDataBuff[10],这个数组只有10个元素,但是在函数中却有这样的语句ucDataBuff[10]=0x1a,这个语句是给数组的第11个元素赋值,:由于定义的数组只有10个元素,从而导致赋值语句中不知道把0x1a放到什么地方,从而导致程序跑飞。
解决方法:如果在调试程序时,发现程序总是在函数执行完毕时跑飞,多数情况是发生了数组越界(数组溢出)的错误,仔细检查函数中调用的数组是否存在越界(溢出)的情况。
二、中断服务程序缺失

现象:程序运行过程中总是跑飞。
原因:程序中打开了某个中断,但是却没有相应的中断服务程序,从而导致在中断发生后,找不到中断服务程序入口,从而导致程序跑飞。
解决方法:检查程序中是否存在打开了某个中断,但是没有相对应的中断服务程序。
三:看门狗复位
现象:在执行一段较为好费时间的程序时,程序跑飞,并且总是跳到复位位置处。
原因:程序中使用了看门狗,但是没有及时“喂狗”,从而导致看门狗复位,使程序直接跳到复位位置。
解决方法:根据程序运行时间,尤其是一定要计算清楚最耗时的那段程序的运行时间,然后准确设置看门狗的复位时长,定时“喂狗”,尤其是如果有死循环的情况,一定要在死循环中记得“喂狗”。


lix1yr 发表于 2024-1-11 13:34 | 显示全部楼层
提供稳定可靠的电源供应对于单片机的稳定性至关重要。
zhizia4f 发表于 2024-1-11 14:36 | 显示全部楼层
单片机的时钟源对于其稳定性至关重要。使用高质量的外部晶振,并正确配置时钟源和时钟分频器,以确保准确的时钟信号
b5z1giu 发表于 2024-1-11 15:42 | 显示全部楼层
良好的地线和电源线布线可以减少电磁干扰和噪声,提高单片机的稳定性。避免地线和电源线共享,尽量减少线路长度和交叉
w2nme1ai7 发表于 2024-1-11 16:43 | 显示全部楼层
合理设计和布局外设电路,避免干扰和噪声对单片机的影响。使用适当的滤波器和隔离电路来处理输入和输出信号,以保护单片机免受外部干扰
p0gon9y 发表于 2024-1-11 17:45 | 显示全部楼层
编写高效、稳定的软件代码可以提高单片机的稳定性
l1uyn9b 发表于 2024-1-11 19:11 | 显示全部楼层
避免死循环、资源竞争和内存溢出等问题,合理使用中断和定时器,确保代码的正确性和可靠性
q1d0mnx 发表于 2024-1-11 20:18 | 显示全部楼层
单片机的工作温度范围内保持适当的温度是确保稳定性的关键。使用散热器、风扇或温度传感器等措施来控制单片机的温度,并避免过热或过冷的情况
y1n9an 发表于 2024-1-12 08:05 | 显示全部楼层
在设计和布局电路板时,考虑电磁兼容性问题,采取屏蔽、地线分离、信号线距离等措施,以减少电磁干扰和提高系统的抗干扰能力
d1ng2x 发表于 2024-1-12 09:32 | 显示全部楼层
在生产过程中,严格控制质量,确保单片机的制造和组装符合标准和规范。进行严格的测试和质量检查,以排除潜在的问题和缺陷
liu96jp 发表于 2024-1-12 11:02 | 显示全部楼层
确保电源电压在规定范围内,并使用适当的电源滤波和稳压电路来减少电源噪声和波动
埃娃 发表于 2024-1-29 11:10 来自手机 | 显示全部楼层
减小电源纹波
代码输出机 发表于 2024-1-29 11:18 | 显示全部楼层
这个需要减小电源的纹波。
电子乐园游园ing 发表于 2024-1-29 17:07 | 显示全部楼层
代码的稳定性和健壮性,决定产品的好坏
起飞的龙D 发表于 2024-1-29 17:12 | 显示全部楼层
编程的习惯,程序的健壮性,决定产品的成败
micoccd 发表于 2024-1-29 17:17 | 显示全部楼层
还有一个就是写FLASH覆盖了代码区域
我喜欢打游戏 发表于 2024-1-29 22:23 | 显示全部楼层
看门狗比较常用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

4956

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部