菜鸟:
这两天看来几个关于modbus轮训中断的问题,让我有所犹豫之前做的程序是不是也存在类似的隐患?
我做modbus轮训的时候用的是“完成位”和“错误位”去去触发下一轮训,至今也没出现过掉的情况;
会不会出现这两个位都为“0”的情况啊,或需不需要做个看门狗类似的东西啊;
有一个情况我的说一下:
前一段时间做实验的时候当我把波特率提升到115200的时候轮训时不时就停止了(无规律);
然后我就把“完成位”和“错误位”的“上升沿”改成“下降沿”轮训再也没掉过;当时我也没太在意以为是跟CRC校验发生冲突了,现在细想根本不是这么回事?
游民:
我之前做的和楼主差不多“not busy ”和“错误位”去去触发下一个,正常运行并没有出现过中断,后来发现在线调试时候尤其是运行模式下载后通信就停止,所以我后来还是加了一个看门狗,用not busy判断超过100mS就强制触发一个通信请求,就再也没有出现过中断
大虾:
你的EN端控制了吗?
菜鸟:
EN端没有控制啊。