串口232通信协议输出的数据怎么才算一帧

2019-08-13 19:58发布

麻烦问下群里大神,就是关于串口通信方面的,就是表返回的这17个字节数是一帧数据还是就里面一个如2D(00101101)八位加上起始位和停止位才为一帧数据呢?39(00111001)这样一帧一帧数据组成一个电表读出来的一个完整数呢?谢谢

file:///C:Users eAppDataLocalTempWeChat Files207e6acd1383168c941c7a2c42d5cdd.jpg


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
KC1265005878
1楼-- · 2019-08-14 07:37
shikihane 发表于 2017-9-28 15:56
这就是流控的问题了,有软件流控和硬件流控。用0D 0A 做结尾,表示为一帧结束,就是一种典型的软流控

大神,那串口通信时设置的数据位8位,怎么和2D 39 2E 36 20 33 34 30 30 30 30 45 2D 30 35 0D 0A联系起来,就是数据位的8与最后收到的数据的字节数有什么关系呢?
adlu
2楼-- · 2019-08-14 12:09
本帖最后由 adlu 于 2017-9-28 16:41 编辑

LZ基础没过关啊

类似于 9600,n,8,2是串口传输一个字符格式。9600,n,8,2表示波特率为9600,无校验位,8位数据,2位停止。

至于你说的2D 39 2E 36 20 33 34 30 30 30 30 45 2D 30 35 0D 0A这一串,是应用层的东西,一般是称为数据包。
发送这一串数据中的每一个字节,都遵循n,8,2的格式。

数据包的格式,就是应用层定义的了。比如,规定2D为数据包头,0D 0A为数据包尾。

帧的概念更多的应该使用在音频或视频数据中。一般的通讯,使用数据包的概念。你说的一帧数据,应该指的是一个数据包。
KC1265005878
3楼-- · 2019-08-14 14:49
来俩不甜的 发表于 2017-9-28 14:40
方案二;这是一组数据,具体每个数什么意思就要看你的通讯协议了。
接收数据首先你要开一个数组去存,接 ...

感谢大神细心指导!!!
KC1265005878
4楼-- · 2019-08-14 16:05
 精彩回答 2  元偷偷看……
adlu
5楼-- · 2019-08-14 21:24
KC1265005878 发表于 2017-9-29 09:10
非常感谢,
大神能否推荐下有关串口通信方面的容易理解的书籍或资料,好多都是一知半解,网上有些资料讲 ...

不要太纠结别人怎么描述的,其实都对。只是描述用的词不一样。

我个人一般不用帧这个概念来描述串口通讯。

鉴于你对串口通讯还不怎么理解,建议先简化概念。
你就用两个概念就行:字符格式,数据包格式。

字符格式,就是类似于9600,n,8,2指定的发送一个字符的格式。
数据包格式,就是应用层用于判断数据完整性的格式。
KC1265005878
6楼-- · 2019-08-15 03:20
adlu 发表于 2017-9-28 16:39
LZ基础没过关啊

类似于 9600,n,8,2是串口传输一个字符格式。9600,n,8,2表示波特率为9600,无校验位 ...

大神,在吗,打扰你下,就比如2D 39 2E 36 20 33 34 30 30 30 30 45 2D 30 35 0D 0A这一串,这个表它没给出通信协议,那这个数据,可不可以把2D作为报头,0D 0A作为报尾,但开头的2D与倒数第五个的2D会不会产生冲突。
不知道这个表的通信协议,我看其他的表有帧头、帧尾,数据位等,要那种完整的通信协议,用单片机把表的数据读出来,再通过以太网把数据打包发到上位机去,但不知道34401A这个表的通信协议,不知道改怎么做,所以想麻烦大神指导下,谢谢!

一周热门 更多>