HC-05蓝牙模块一次性连续发送大量数据需分包发送

目录

摘要

故事背景

启示


摘要

当使用HC-05蓝牙模块一次性连续发送大量数据时,需要将数据进行拆分,分包发送,每个数据包之间适当加时间间隔,否则当连续传输的数据量达到一定程度时,蓝牙模块容易宕机。

分包建议:(建议数据来自于广州汇承信息科技有限公司的官方淘宝技术客服)

每个数据包的大小建议为500-1k(1024)个的8bit数据

115200波特率下,1K大小的数据包建议间隔100ms

230400波特率下,1K大小的数据包建议间隔50ms

故事背景

做课设时需要将上位机的一张图片数据传输到FPGA上,传输的图片在MATLAB上进行预处理,将图片裁剪成640*480的大小,图片数据转化为RGB565的格式,即一个像素点的数据为16位数据。故一张图片共有640*480*2=614400个8位数据,即上位机给FPGA发送数据一次需发送约61万个8bit数据。

数据的发送与接收通过两个HC-05蓝牙模块实现,一个为主机模式、一个为从机模式,波特率为115200。上位机软件将这61万个数据一次性发送给FPGA,多次发送时发现,经常在发送到35万-50万个数据时,蓝牙模块出现宕机。虽然两个蓝牙模块的LED指示灯仍显示两个蓝牙之间仍保持连接状态,但这两个蓝牙模块实际上已经不能再次通信,发送端不管怎么发,接收端一直接收不到数据,需要将任一蓝牙模块断电重启重新连接后,才能重新收发数据。

咨询汇承官方技术客服得知,原来HC-05蓝牙模块不能一次性连续发送太多数据,需要将数据进行拆分,分包发送,每个数据包之间适当加时间间隔。分包建议见摘要。这个分包建议以及宕机情况没有在模块的资料里提及到,若没有咨询技术客服还真难以发现问题所在以及解决方案。

按他们的建议进行分包发送,蓝牙模块确实不会再出现宕机情况。FPGA能够成功接收图片的所有数据。

波特率改用为230400时,测试发现,一次性连续发送约15万个8bit数据时,蓝牙模块就出现宕机情况。按建议的时间间隔进行分包发送确实也没有了这种宕机情况。

启示

以后采用一些通信模块进行数据通信时,当一次性连续传输的数据量大到一定程度时,要有分包发送的意识,这样有利于通信模块保持正常稳定地工作。

当一次性连续传输的数据量大到一定程度时,若数据前面一部分能够正常接收,后面出现连接断开、数据丢失的情况,可以尝试进行数据拆分、分包发送、延长间隔时间。

觉得讲得还不错的话,麻烦点一下赞呀,你的点赞是我更新的动力!❤

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值