请问如何在数据包前加帧头,组合数据

2019-07-14 15:06发布

目前在调试OV7740,读到每行的数据,每行数据有160多个字节。现在想在每行数据前加上一些帧头信息,比如这是行号,数据大小,等。然后每5行这样的数据拼起来组成一个包发出去。请问这怎么操作?
1.如何添加帧头信息
2.如何拼起来再发
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
TOPCB
1楼-- · 2019-07-15 00:13
可以参考modbus协议
jsjfsjfe
2楼-- · 2019-07-15 02:01
 精彩回答 2  元偷偷看……
ldd1211_
3楼-- · 2019-07-15 03:10
jsjfsjfe 发表于 2018-12-20 10:55
你好,谢谢您的回答。如果一行数据是160个bytes,5行的话就有800bytes,加上一些帧头等一包数据就有800多字节,这样的话数组会不会太大了点

那得看你用什么单片机了,STM32的话小意思了
ldd1211_
4楼-- · 2019-07-15 03:26
jsjfsjfe 发表于 2018-12-20 10:55
你好,谢谢您的回答。如果一行数据是160个bytes,5行的话就有800bytes,加上一些帧头等一包数据就有800多字节,这样的话数组会不会太大了点

不过大数组不要定义成局部变量,需要定义为全局变量
zsqzsqzs
5楼-- · 2019-07-15 06:50
二楼的方法+三楼的原理,创建一个包含帧头的缓冲区,然后把帧数据填充到缓冲区中的数据区去,最后发送时从头开始读取数据发送。

连续的缓冲区(或链表),发送的时候指针从头开始,把五组全部发出去,800多字节根本不算大呀,TCP比这个大多了
jr3367
6楼-- · 2019-07-15 11:55
jsjfsjfe 发表于 2018-12-20 10:55
你好,谢谢您的回答。如果一行数据是160个bytes,5行的话就有800bytes,加上一些帧头等一包数据就有800多字节,这样的话数组会不会太大了点

通讯信息帧一般是这种结构:帧头+长度+...数据...+校验
如果传输的数据量很大,可以考虑把一个大数据包拆分成几个小数据包传输,每个小数据包再增加包标识以便接收端识别。
800字节的数据并不算很大。

一周热门 更多>