esp32 BLE 蓝牙发出数据丢包或者数据错序重组
Moderator: ESP_XCGuang
esp32 BLE 蓝牙发出数据丢包或者数据错序重组
手机和我们设备蓝牙通信,MTU=517,现在要发送2427字节数据,分5包发送,前四包每包514字节,最后一包317字节。有时候,手机收到的数据会丢包,有时候会数据移位甚至错序,但是手机收到的数据每包个数不变,还是514字节,有时还会丢失一整包,这些现象不是必现,是发送几十次甚至上百次后才会出现。 我用了nRF sniffer 抓包工具测试了丢数据或者数据错序的情况,确实是esp32发出来就是错的,而不是手机接收的问题。 我又用示波器抓取MCU发给esp32的数据也没有出错,出错就是在esp32本身,即esp32接收到MCU的数据后,蓝牙发出的数据有问题。 串口的波特率设置为:806400。比如要发送的数据是“1234567890abcd”,实际蓝牙发出来的是“123456abcdabcd”,并没有出现乱码,是数据错序重组,发出来的数据长度保持不变,还是514字节。
- Attachments
-
- 微信图片_20220825184910.jpg (120.91 KiB) Viewed 18870 times
-
- 微信图片_20220825184838.jpg (121.11 KiB) Viewed 18870 times
Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组
AT版本为:
SDK version:v4.2.2-76-gefa6eca8b8
Bin version:2.2.0(WROOM-32)
SDK version:v4.2.2-76-gefa6eca8b8
Bin version:2.2.0(WROOM-32)
Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组
这个问题我发现同样的AT固件版本,在esp32-wroom-32E 上就不会出现
Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组
因为我看到您说相同的 AT 版本在 esp32-wroom-32E 上不会出现此问题,可以告知您说的会发生问题的模组具体名称吗,或者可以拍个照片吗?
Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组
图中,esp32E不出现,ESP32出现
- Attachments
-
- esp32E.png (160.4 KiB) Viewed 18811 times
-
- esp32.png (134 KiB) Viewed 18811 times
Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组
我们又经过充分测试,发现ESP32-WROOM-32E上也有同样的问题。我们测试了几十片不同的模组,都有同样问题。而且更新到最新的官方固件AT version:2.4.0.0, 也没有解决问题。 我觉得这是AT固件版本的通病,希望你们能帮我们解决
Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组
或许您可以使用双向流控,测试看下是否能解决这个问题。
AT+UART_CUR:设置 UART 当前临时配置,不保存到 flash(https://docs.espressif.com/projects/esp ... uart-flash)
AT+UART_CUR:设置 UART 当前临时配置,不保存到 flash(https://docs.espressif.com/projects/esp ... uart-flash)
Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组
esp32c3 mini 1的spp蓝牙通信也有问题,并且如果调整mtu,且间隔时间很短的话会导致丢包。
Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组
建议使用双流控(AT+UART_CUR 命令),如果不使用双流控有可能会出现数据丢失以及数据错乱的问题。
Who is online
Users browsing this forum: No registered users and 26 guests