最近在调试ESP32的蓝牙部分,需要10ms发一帧10字节大小的数据包(发给自己写的Android App),调试发现Android端接收到的数据总是会出现乱序或者丢包的问题,一开始以为用的低功耗蓝牙所以速度上要差一些,结果换成经典蓝牙(ESP32和Android端都需要改程序)仍旧有同样的问题。问问坑友们有没有相关蓝牙经验的,蓝牙确实就这点性能都没有吗?
测试还发现貌似不同手机的蓝牙接收效果也各有差异(但是都是丢包乱序,出现的概率大小而已)。
坑友们给点指导吧,不知道咋调了~~
离线
难道蓝牙和 udp一样丢包和不保证顺序?
那只能靠上层软件协议来实现数据完整性了
离线
拜托留个联系方式,我告诉你怎么回事。我QQ:261829359
离线
直接说说解决思路呗
拜托留个联系方式,我告诉你怎么回事。我QQ:261829359
离线
蓝牙速度很慢的,10ms周期估计估计太快了。为什么不用wifi,还稳定点,另外esp32的蓝牙功耗也不低
离线
我来说一波,说的可能不对,但是猜测一下,连接间隔有问题,看下面的链接
https://blog.csdn.net/slimmm/article/details/101439796
连接间隔决定了主设备和从设备交互的间隔,指的是两个连续的连接事件之间的间隔,是以1.25ms为单位,连接间隔的范围从最小值6(7.5ms)到最大值3200(4.0s)。
估计你的蓝牙连接间隔设置的过大了
最近编辑记录 小智 (2019-12-05 09:42:20)
离线
看样子,你还是在做蓝牙的HID键盘或者鼠标,我说个思路吧,你大可不必10ms发一次,只要你android端模拟hid的标准数据,10ms上报到应用层,当键盘或者鼠标按下后,你在发送数据,替换掉模拟数据就ok了,我猜测蓝牙鼠标键盘都是这么搞的,要是一直维持10ms的协议,估计蓝牙鼠标键盘早就没电了,只有按键发生变化,才会上传,其他时候,模拟上报就ok了
离线
我觉得是写的app问题,10ms真的太快了,app很容易丢的
离线