一、测试问题:
1.运行了四十多分钟后,自动停下,不断电能继续启动。听到刚停的时候跑过来有看到一次红灯闪烁(过压报警),按停止无反应或者按了停止过程中上位机的速度值不变。
2.运行到7000rpm后,停止过程中速度值不变。
3.启动过程中,有停止不下来的情况。
4.启停按钮有某次不响应的时候。
5.加入独立看门狗后,异常。且会反复重启。
问题分析:
针对问题1.结合厂家回复,两种情况,要么是心跳死了,要么是过压。
针对问题2.分析是串口接收中断被搞死了,发送正常,所以还能启动控制。
但是这里是485通信,感觉又不会收发冲突,虽然也加入了收发冲突那段代码,和错误回调打印函数等,都没起到作用。
针对问题3.串口接收中断死了。
针对问题4.启停时候是发送的单个数据帧,存在风险,改成两次三次重复发送。
针对问题5.调试发现,while中调用的脉冲输出xx函数里面调用了500ms的延时,总共就大于了喂狗1s时间,所以重启。
二、网上查阅收获:见串口总结
1.串口HAL_UART_Transmit_IT(),异步发送函数,未发送完成也会去执行其它高级中断。而HAL_UART_Transmit_()为阻塞发送函数,最后一个参数为超时参数,如果发送批量数据,超时时间到后,未发送完的将不发送。
既