项目场景:
通过cat1读取obd数据
问题描述
当cat1的CAN口远端没有连接数据,单片机会跑飞。
原因分析:
main函数一开始启用了看门狗,因为CAN没有连接up起来的设备,就会卡在CAN的库函数(while循环),定时器任务在CAN任务之后创建,在定时器任务里面执行喂狗操作,这样就会导致狗没喂进而在CAN库函数里面死循环的过程中中断循环重启系统。
解决方案:
找到原因后,就在CAN任务创建之后任务里面先延时一会,等定时器任务创建开始喂狗操作或者把定时器任务放在CAN任务前面。
CAN死循环的地方放个截图:![在这里插入图片描述](https://img-blog.csdnimg.cn/d4cd6e9bb7a54db9a32c133fb2c4116c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBATWFzdGVyIG9mIExpbnV4,size_20,color_FFFFFF,t_70,g_se,x_16)