串口通信,帧头帧尾校验和不懂,大神指导

2019-03-23 15:48发布

串口通信,
1.帧头帧尾校验和是自己定的么?这算是一个协议么?
2.我看到有的协议有帧头没有帧尾但是有校验和,帧尾是可以有可以没有么?
3.帧尾就是校验和么?帧尾和校验和有一个就可以吗?
4.帧头跟帧尾都必须有吗还是帧头必须有帧尾不必须有?
作为小白,网上查着查着就乱了,求大神解释上面问题                                                               
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
shijizai
1楼-- · 2019-03-25 07:37
huo_hu 发表于 2018-7-2 20:53
这边发送数据,那边接收数据,两套程序不搭嘎呀

那程序呢?我写这句话USART_SendData(USART2,'A'); 是这个单片机能传到另一个那边还是这个单片机传到上位机?大神,你说,如果MCU1的USART2传到MCU2的USART3,这时我应该这么写USART_SendData(USART2,'A'); 还是这么写USART_SendData(USART3,'A'); ?
Li_Lei
2楼-- · 2019-03-25 11:57
 精彩回答 2  元偷偷看……
chunyang
3楼-- · 2019-03-25 17:18
1.帧头帧尾校验和是自己定的么?这算是一个协议么?
A1:未必需要自定,有些协议有强制要求。仅有帧头帧尾和校验未必就能称得上是“协议”,典型11位异步串口格式(1起始位、1结束位、1校验位、8数据位)就不能称为是协议,协议必须有对内容解析的约定。
chunyang
4楼-- · 2019-03-25 17:32
2.我看到有的协议有帧头没有帧尾但是有校验和,帧尾是可以有可以没有么?
A2:一个数据帧的结构可以是前导码+长度码+数据码+校验码,显然,有长度码或者数据码的长度始终为常数时,那么就无需结束码。注意,楼主在这里弄错了概念,帧尾是一定有的,最后一个字节甚至最后一个数据位不论其性质是什么,都是帧尾。显然,说帧头、帧尾是不严谨的,应该说前导码、结束码。
chunyang
5楼-- · 2019-03-25 19:01
 精彩回答 2  元偷偷看……
chunyang
6楼-- · 2019-03-25 22:56
4.帧头跟帧尾都必须有吗还是帧头必须有帧尾不必须有?
A4:帧头、帧尾显然必须有,否则就是什么都没有,但引导码、结束码则未必。这里依然是帧头、帧尾的概念错误导致的误解。

一周热门 更多>