|
单片机一上电就不停的重启,这个问题,偶尔就出现,那时,调程序,好像弄好了。单片机一个串口,一个can。主要就这些。那时,出现不停重启 ,发现不使能can的部分。竟然就好了,怀疑是can中断和串口中断,数据较多时,发生了异常什么的。后来,进入串口中断,就关闭can中断,没用。把can的优先级设低于串口,没用。后来不知怎么,把串口的接收缓冲加大了一些,清零的长度减小了一些。竟然就莫名其妙的好了。 后来好像也出现过重启,但改了几个貌似没有关系的东西,就好了。没管它。后来,又改了程序,测试,突然发现又开始不停重启,我先测硬件吧。电源,复位什么的没有异常,有一个引脚会变化,但那根本不应该影响芯片复位。应该还是程序的原因。开始试,把看门狗溢出时间延长,发现重启间隔也长了,经计算,刚好经过溢出时间,就重启,这是没有喂狗啊。经过一系列的折腾,结果让我崩溃。喂狗程序不是在主循环最外围写的,竟然是在串口接收里面。这怎么可能啊。我已经没有能力去分析开始为什么重启问题会暂时解决。只知道,现在的重启是因为没有喂狗。那时我还怀疑是不是碰上了芯片的一个bug。根本没有正常运行主循环,而是卡在一个地方,串口中断执行后,不再被卡,回到主循环。好吧。怎么感觉,都不如在学校的时候了?
|
|