一般不是中断优先级的问题。
个人猜测,一般是数组与指针的问题。
比如:定义了一个 u8 a[4]的数组,u8 cnt的变量
cnt++ 去读取a数组的值。
当cnt=4时
a[cnt]这事就出错了,程序就跑分了
数组越界,指针越界等等,都会造成程序跑飞。
最后就是堆栈溢出,也会出现这个问题,所以,建议检查下程序
一般都是在串口接收数据时出现,看看接收数组大小,接收到的数据大小;在接收中是否使用指针对数据进行了转移或处理等操作。
感觉是数组越界、指针指向不明地址导致的。
这种情况一般是数组越界 或者指针地址没有回收
也有可能是使用了不正确的goto语句
硬件损坏的纪律很低 但也不能排除
先按排除以上的软件问题 如果不能解决
在换单片机试试 最好是用在线调试的方式
在容易出错的地方加输出调试信息
有可能是有数据越界的情况发生
可以先把所有的功能关了,再一个一个打开进行验证,看看是哪一部分外设引起的