完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
目前在调试OV7740,读到每行的数据,每行数据有160多个字节。现在想在每行数据前加上一些帧头信息,比如这是行号,数据大小,等。然后每5行这样的数据拼起来组成一个包发出去。请问这怎么操作?
1.如何添加帧头信息 2.如何拼起来再发 |
|
相关推荐
10个回答
|
|
定义好一个数组,把帧头部分的空间预留出来,假设帧头需要10bytes的空间,则从数组的第11个元素开始存储读取到的OV7740数据
|
|
|
|
可以参考modbus协议
|
|
|
|
你好,谢谢您的回答。如果一行数据是160个bytes,5行的话就有800bytes,加上一些帧头等一包数据就有800多字节,这样的话数组会不会太大了点 |
|
|
|
jsjfsjfe 发表于 2018-12-20 10:55 那得看你用什么单片机了,STM32的话小意思了 |
|
|
|
jsjfsjfe 发表于 2018-12-20 10:55 不过大数组不要定义成局部变量,需要定义为全局变量 |
|
|
|
二楼的方法+三楼的原理,创建一个包含帧头的缓冲区,然后把帧数据填充到缓冲区中的数据区去,最后发送时从头开始读取数据发送。
连续的缓冲区(或链表),发送的时候指针从头开始,把五组全部发出去,800多字节根本不算大呀,TCP比这个大多了 |
|
|
|
jsjfsjfe 发表于 2018-12-20 10:55 通讯信息帧一般是这种结构:帧头+长度+...数据...+校验 如果传输的数据量很大,可以考虑把一个大数据包拆分成几个小数据包传输,每个小数据包再增加包标识以便接收端识别。 800字节的数据并不算很大。 |
|
|
|
camera出来的数据是640行,如果我要每64行组成一包的话,那不是要定义10个这样的数组? |
|
|
|
在每行的图像数据前添加10个字节(这是个举例),这10个字节代表图像数据长度、序号之类的;第11个字节是有效的图像数据;上位机或其他设备收到后,去掉前10个字节,取第11个字节作为有效数据使用。
|
|
|
|
参考DL/T645协议
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1107 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1055 浏览 2 评论
2159 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1253 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1678 浏览 1 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 08:53 , Processed in 0.865415 second(s), Total 93, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号