程序跑飞了或者进入某些严重错误的中断函数里面去了,你可以仿真看看具体进入哪个中断函数了,以此来判别错误类型。
一般的错误有 数据溢出(数据超过最大值了),除数为零,越界访问(一般是数组)等等。我曾经使用了sprinft这个函数也造成错误,后来吧代入的数组的长度改为偶数就好了。
单从你描述的现象,很难准确定位问题出在哪里?
至少要看到电路板,然后才能分析原因。
“实验中发现给单片机直接接5v电压,单片机没有坏后,恢复到3.3v供电,将单片机的vcc和gnd短路起来一段时间,发现仍旧也不会把单片机弄坏。”
这个只能说明电路板可以支持5v电压。vcc和gnd短路起来一段时间,短路后电流过大,考验的是电源,和单片机没有关系。
1、确认2576前端,也就是电路板的最高工作电压,然后分析判断该电压是否低于电瓶电压?如果低于电瓶电压,那说明设计有缺陷。
2、如果2576前端正常,然后分析2576输出电压。然后再一步一步分析其它部分。另外电瓶电压并非像普通稳压电源那么稳定,特别发动机启动时电压会有不小的波动,还有一些杂波等。
进行修理。
1、首先,将stm32l431rct6CAN在机械主板上拆卸下来。
2、其次把stm32l431rct6CAN拆开后把用热风枪拆下内部内置主板。
3、将stm32l431rct6CAN安装在测试机器上重新配置系统即可解决死机问题。
本文标签:stm32输入悬空死机