Page 1 of 1

服务器频繁发送通知,通讯一段时间后客户端断开连接

Posted: Thu Dec 12, 2019 6:44 am
by iamlijin
环境:
SDK版本:V3.1.3
使用例程:gatt_server,gatt_client

过程:
1、gatt_server与gatt_client 一对一通讯。
2、gatt_client端关闭中断定时器、任务定时器(避免其报未及时喂狗错误),程序未做修改。
gatt_server通知功能被使能后,在主程序中周期性给gatt_client发送通知。

现象:
1、gatt_server以20ms间隔给gatt_client发送通知,接收正常。
2、gatt_server以10ms间隔给gatt_client发送通知,刚开始时接收正常,但会在约3分钟后断开连接;其打印
信息为
BT_APPL: bta_gattc_conn_cback() - cif=3 connected=0 conn_id=3 reason=0x0008
GATTC_DEMO: ESP_GATTC_DISCONNECT_EVT, reason = 8
3、gatt_server以10ms间隔给手机上的蓝牙APP(ble scanner)发送通知,接收始终正常,进一步验证连接是由
gatt_client断开的。
4、尝试修改连接参数,现象依旧。
使用gattc_multi_connect测试,在接收通知数据几秒后,也会断开连接,打印内容基本类似。

Re: 服务器频繁发送通知,通讯一段时间后客户端断开连接

Posted: Fri Dec 20, 2019 9:15 am
by iamlijin
原因找到了。gatt_client接收到通知数据时会调用esp_log_buffer_hex()函数进行打印,当接收到的数据过于频繁来不及进行打印时就会出现上面的现象。将串口控制台波特率由默认的115200修改为921600就可以了。