单片机运行出错或者陷入死循环是什么原因

单片机运行出错,或者陷入死循环,有可能是硬件电路原因,也有可能是程序原因。

一、排除电路故障

当单片机运行出错,直观的表现就是电路中某一部分不能正常工作,这个时候就需要我们运用电子知识,借助测量工具,检查电路中的故障点,看看是不是电路存在断路、短路等问题,元器件是否正常工作。电压电流是否正常。

程序陷入死循环不一定全是软件原因,例如对于有的单片机,需要时钟配置的,而时钟配置如果不成功的话,程序不运行,如果晶振电路有问题那么程序就会一直停留在时钟配置这段程序中。造成了所谓的死循环。

另外如果电路不稳定,造成程序运行过程中单片机受到干扰,程序就会跑飞。

单片机运行出错或者陷入死循环是什么原因

二、排除程序故障

如果排除的电路的问题,那么就要检查程序了,对于简单的故障,根据经验可能很快就能定位道程序出错的位置和出错原因,那就直接去检查那一段程序,然后修改。

如果故障现象比较复杂,这个时候最好借助仿真器,让程序在仿真环境下运行,运用单步、跳转、断点等仿真手段,在仿真过程中观察程序中的数据或者电路的运行状态,当数据出错或电路故障表现出来的时候,程序运行到哪里了,这个地方可能就存在错误,检查并修改。

对于死循环问题,在程序这几种应尽量避免使用死循环,例如可以设定一个最大等待出错时间,如果超过最大时间,就设置错误警示。如果必须使用死循环,可以考虑使用看门狗等手段,使单片机实现超时复位。

单片机运行出错或者陷入死循环是什么原因