完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用gattc_multi_connect例程,修改了remote_device_name[0][20] = {"RG826_T"},连接到另外一个蓝牙模块server
1、在订阅通知后只能接收30秒左右的通知,然后就再也接收不到服务端的通知 2、直接重启服务端,esp32会自动断开并重新连接和订阅通知,此时一样只能接收30秒通知 我尝试了一下解决办法,但是都不能解决这个问题,且问题没有区别 1、修改服务端通知速度,从1秒1次 1秒10次,都是只能接收30秒 2、在esp32中通过线程每10秒取消esp_ble_gattc_unregister_for_notify,再重新esp_ble_gattc_register_for_notify , 结果还是一样 3、将通知事件中的打印函数减短 |
|
相关推荐
1个回答
|
|
在gattc_multi_connect例程中,蓝牙notify事件一段时间后接收不到的原因可能有以下几点:
1. 蓝牙模块之间的通信问题:可能是由于蓝牙模块之间的通信不稳定或者信号干扰导致的。 2. 服务端的问题:服务端可能存在一些bug或者性能问题,导致通知发送不稳定。 3. ESP32的蓝牙驱动问题:可能是ESP32的蓝牙驱动存在一些缺陷或者兼容性问题。 4. 资源限制:ESP32的内存或者CPU资源可能不足以支持长时间的蓝牙通信。 为了解决这个问题,你可以尝试以下几种方法: 1. 检查蓝牙模块之间的通信:确保蓝牙模块之间的通信稳定,避免信号干扰。 2. 检查服务端代码:检查服务端的代码,确保没有bug或者性能问题。 3. 更新ESP32的蓝牙驱动:尝试更新ESP32的蓝牙驱动,以解决可能的兼容性问题。 4. 优化ESP32的代码:优化ESP32的代码,减少内存和CPU资源的消耗。 5. 增加超时重连机制:在ESP32的代码中增加超时重连机制,当检测到通知接收不到时,自动重新连接和订阅通知。 6. 调整通知间隔:尝试调整服务端发送通知的间隔,以减轻ESP32的负担。 7. 检查ESP32的电源:确保ESP32的电源稳定,避免因为电源问题导致的通信中断。 8. 使用专业的蓝牙测试工具:使用专业的蓝牙测试工具,如ESP32的ESP-BLE-MESH工具,来测试和调试蓝牙通信。 通过以上方法,你可以尝试解决蓝牙notify事件一段时间后接收不到的问题。如果问题仍然存在,建议寻求专业的技术支持。 |
|
|
|
只有小组成员才能发言,加入小组>>
368浏览 6评论
304浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
291浏览 5评论
297浏览 4评论
277浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-7-27 20:04 , Processed in 0.768276 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191