esp32 BLE 蓝牙发出数据丢包或者数据错序重组

Moderator: ESP_XCGuang

weibdorn
Posts: 12
Joined: Fri Mar 19, 2021 9:47 am

esp32 BLE 蓝牙发出数据丢包或者数据错序重组

Postby weibdorn » Thu Aug 25, 2022 10:55 am

手机和我们设备蓝牙通信,MTU=517,现在要发送2427字节数据,分5包发送,前四包每包514字节,最后一包317字节。有时候,手机收到的数据会丢包,有时候会数据移位甚至错序,但是手机收到的数据每包个数不变,还是514字节,有时还会丢失一整包,这些现象不是必现,是发送几十次甚至上百次后才会出现。 我用了nRF sniffer 抓包工具测试了丢数据或者数据错序的情况,确实是esp32发出来就是错的,而不是手机接收的问题。 我又用示波器抓取MCU发给esp32的数据也没有出错,出错就是在esp32本身,即esp32接收到MCU的数据后,蓝牙发出的数据有问题。 串口的波特率设置为:806400。比如要发送的数据是“1234567890abcd”,实际蓝牙发出来的是“123456abcdabcd”,并没有出现乱码,是数据错序重组,发出来的数据长度保持不变,还是514字节。
Attachments
微信图片_20220825184910.jpg
微信图片_20220825184910.jpg (120.91 KiB) Viewed 19615 times
微信图片_20220825184838.jpg
微信图片_20220825184838.jpg (121.11 KiB) Viewed 19615 times

weibdorn
Posts: 12
Joined: Fri Mar 19, 2021 9:47 am

Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组

Postby weibdorn » Thu Aug 25, 2022 10:56 am

AT版本为:

SDK version:v4.2.2-76-gefa6eca8b8
Bin version:2.2.0(WROOM-32)

weibdorn
Posts: 12
Joined: Fri Mar 19, 2021 9:47 am

Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组

Postby weibdorn » Thu Aug 25, 2022 10:57 am

这个问题我发现同样的AT固件版本,在esp32-wroom-32E 上就不会出现

ESP_Sun
Posts: 326
Joined: Thu Dec 30, 2021 9:52 am

Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组

Postby ESP_Sun » Fri Aug 26, 2022 2:25 am

因为我看到您说相同的 AT 版本在 esp32-wroom-32E 上不会出现此问题,可以告知您说的会发生问题的模组具体名称吗,或者可以拍个照片吗?

weibdorn
Posts: 12
Joined: Fri Mar 19, 2021 9:47 am

Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组

Postby weibdorn » Fri Aug 26, 2022 5:19 am

图中,esp32E不出现,ESP32出现
Attachments
esp32E.png
esp32E.png (160.4 KiB) Viewed 19556 times
esp32.png
esp32.png (134 KiB) Viewed 19556 times

weibdorn
Posts: 12
Joined: Fri Mar 19, 2021 9:47 am

Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组

Postby weibdorn » Thu Sep 01, 2022 2:26 am

我们又经过充分测试,发现ESP32-WROOM-32E上也有同样的问题。我们测试了几十片不同的模组,都有同样问题。而且更新到最新的官方固件AT version:2.4.0.0, 也没有解决问题。 我觉得这是AT固件版本的通病,希望你们能帮我们解决

ESP_Sun
Posts: 326
Joined: Thu Dec 30, 2021 9:52 am

Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组

Postby ESP_Sun » Wed Sep 07, 2022 8:40 am

weibdorn wrote:
Thu Sep 01, 2022 2:26 am
我们又经过充分测试,发现ESP32-WROOM-32E上也有同样的问题。我们测试了几十片不同的模组,都有同样问题。而且更新到最新的官方固件AT version:2.4.0.0, 也没有解决问题。 我觉得这是AT固件版本的通病,希望你们能帮我们解决
您可以提供下可以复现问题的 AT 命令序列吗?我这边想要尝试复现分析这个问题,十分感谢。

ESP_Sun
Posts: 326
Joined: Thu Dec 30, 2021 9:52 am

Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组

Postby ESP_Sun » Mon Sep 19, 2022 9:00 am

或许您可以使用双向流控,测试看下是否能解决这个问题。
AT+UART_CUR:设置 UART 当前临时配置,不保存到 flash(https://docs.espressif.com/projects/esp ... uart-flash

vzenith
Posts: 2
Joined: Thu Feb 01, 2024 3:40 am

Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组

Postby vzenith » Fri Feb 02, 2024 2:08 am

esp32c3 mini 1的spp蓝牙通信也有问题,并且如果调整mtu,且间隔时间很短的话会导致丢包。

ESP_Sun
Posts: 326
Joined: Thu Dec 30, 2021 9:52 am

Re: esp32 BLE 蓝牙发出数据丢包或者数据错序重组

Postby ESP_Sun » Mon Jul 01, 2024 7:01 am

建议使用双流控(AT+UART_CUR 命令),如果不使用双流控有可能会出现数据丢失以及数据错乱的问题。

Who is online

Users browsing this forum: No registered users and 8 guests