最近使用ch582m和APP联调时发现容易断开连接,原因是超时,然后我就把连接间隔设置的大一些,但是发现最后协商出来的连接间隔还是和原来一样,这是为什么;下面是我代码和日志:为什么协商出来的结果比我设备的最小连接间隔都要小,而且不管怎么设置,最后出来的结果都差不多,求解答
您好,蓝牙程序中首次连接得到的连接间隔默认为主机主动分配的连接间隔,并不是协商所得。
从您图中看到SBP_PARAM_UPDATE_DELAY这个参数值为6400,代表第一次与主机协商是在连接成功后4s执行。
您没有协商成功的原因应该是由于200-1000这个跨度比较大,不同主机对此无法做出准确判断,因此才不会给您分配到您想要的连接间隔,可以适当缩短连接间隔跨度到100以内,比方说900-1000这个范围试试看。
最后,连接间隔、从机时延以及超时时间这三者还必须满足如下公式:
Supervision Timeout >(1 +slaveLatency)*(connectionInterval)
博客讲解链接:https://www.cnblogs.com/debugdabiaoge/p/16055963.html
好的 感谢解答
你好,我想再问一下 ,我调用GATT_Indication()这个函数发送数据时候,老是失败,返回值为0X16,我看原因是blePending,我想问一下这是什么原因导致的。该怎么解决呢
https://blog.csdn.net/BLE_Baby/article/details/133312351
您参考这篇博客梳理下程序中处理逻辑是否正确。