STM32F103 串口通讯存在的疑惑
本帖最后由 liu632588785 于 2017-12-21 11:18 编辑各位大神,我是刚学STM32,看到别人程序,想请教一下,设备利用STM32f103芯片,串口通讯协议是:下位机发送:BB //下位机请求发送数据
上位机回复:DD // 上位机收到发送请求,如果无应答,则下位机重复发送BB
下位机发送:AA 00 00 00 00 00 AA //下位机发送数据,第一个字节为帧头,第七个字节是前六个字节之和。
上位机回复:EE //收到数据,如果第七个字节和不等于前六个字节之和,则上位机发送MM,则下位机重新发送
................................
按照道理应该是一直循环的,但是在设计测试过程中,经常出现以下情况(标红情况):
下位机:BB
上位机:DD
下位机:AA 00 00 00 00 01 AB
上位机:EE
下位机:BB
上位机:DD
下位机:BB AA 00 00 00 00 11 BB
上位机卡住................
重启
下位机:BB
上位机:DD
下位机:AA 00 00 00 00 02 AC
上位机:EE
下位机:BB
上位机:DD
下位机:BB AA 00
下位机:00 00 00 13 BD
又是卡住.................
不知道是什么原因,求大神指导一二。
我去,惨无人道的代码。。。。.;P;P;P MrJiu 发表于 2017-12-20 15:50
我去,惨无人道的代码。。。。.
:D:'晚上重新编译一下 ,不好意思 数据封包出了问题,某一端一直等不到包尾,又没有超时机制,就卡住了。建议您学习一下 OSI 协议模型再试,这样的话设计出来的通信协议就不会有这种问题的。 标题不合格,24小时内不修改做关闭处理! 楼主,还是考虑一下用固定的格式进行处理吧。可以参考modbus
页:
[1]