【求助】关于232通信协议用数组判断头尾校验帧,求一个完整有详细注解的例程,真的有困难!

2019-08-17 07:29发布

找了很久资料,真的难学,感觉要炸了
希望原子哥能够加上 如何自制串口协议的教程!真的很有必要,不搞协议的232等于没搞,现在随便什么通信都要有协议保证稳定
真的学了好久 还没搞懂!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
32条回答
enan
1楼-- · 2019-08-19 23:07
呵呵,我的目的就是严厉打击那些定义首尾帧的协议。
如果通讯中产生一次错误,可能会导致永久性的通讯失败,比如数据中有与首尾帧一致的数据,然后导致的是每次接收数据的帧错位,错位后协议数据长度字段如果是个很大的数,导致接收方死等,等回来了还是个错的,而且又错位了。
enan
2楼-- · 2019-08-20 01:00
EDA3rd 发表于 2017-6-11 13:28
同意楼上,帧头+命令+数据+帧尾+校验和,这是标准做法。
enan提出的超时判断帧结束,个人感觉不如帧尾+ ...

串口数据一般是连续发送的,用时间来判断怎么不能保障完整性?
一般上一个字节与下一个字节间隔不会超过5ms,超过了肯定是出现问题了,完整性来说我并没有说数据校验可以去掉。
EDA3rd
3楼-- · 2019-08-20 04:50
 精彩回答 2  元偷偷看……
yinqirui9
4楼-- · 2019-08-20 09:21
enan 发表于 2017-6-11 13:07
是滴,当收到第一个字节打开一个定时器,之后每次收到一个字节重新手动装填定时器,如果发生中断了就是表 ...

软件定时和硬件定时器 原子教程里有讲吗( ⊙ o ⊙ )…… 表示不知道怎么区分
enan
5楼-- · 2019-08-20 09:47
EDA3rd 发表于 2017-6-11 13:37
如果担心长度过长,永久失败,可以增加长度检查机制。而且长数据应当拆开成帧

老哥,要下次再来个数据跟首尾帧一样的列?
串口收发个数而已,如果本身我就只是发个浮点数,加上这么多什么首尾帧、长度、冗余的东西来提高鲁棒性,这些个数据传输也得耗费时间,浪费MCU时间,为什么不用一个定时器搞定它
enan
6楼-- · 2019-08-20 13:55
yinqirui9 发表于 2017-6-11 13:40
软件定时和硬件定时器 原子教程里有讲吗( ⊙ o ⊙ )…… 表示不知道怎么区分

原子教程里面没有,软件定时器是自己写的,网上有,很简单的东西

一周热门 更多>