最近使用ch582m和APP聯(lián)調(diào)時(shí)發(fā)現(xiàn)容易斷開(kāi)連接,原因是超時(shí),然后我就把連接間隔設(shè)置的大一些,但是發(fā)現(xiàn)最后協(xié)商出來(lái)的連接間隔還是和原來(lái)一樣,這是為什么;下面是我代碼和日志:為什么協(xié)商出來(lái)的結(jié)果比我設(shè)備的最小連接間隔都要小,而且不管怎么設(shè)置,最后出來(lái)的結(jié)果都差不多,求解答
您好,藍(lán)牙程序中首次連接得到的連接間隔默認(rèn)為主機(jī)主動(dòng)分配的連接間隔,并不是協(xié)商所得。
從您圖中看到SBP_PARAM_UPDATE_DELAY這個(gè)參數(shù)值為6400,代表第一次與主機(jī)協(xié)商是在連接成功后4s執(zhí)行。
您沒(méi)有協(xié)商成功的原因應(yīng)該是由于200-1000這個(gè)跨度比較大,不同主機(jī)對(duì)此無(wú)法做出準(zhǔn)確判斷,因此才不會(huì)給您分配到您想要的連接間隔,可以適當(dāng)縮短連接間隔跨度到100以內(nèi),比方說(shuō)900-1000這個(gè)范圍試試看。
最后,連接間隔、從機(jī)時(shí)延以及超時(shí)時(shí)間這三者還必須滿足如下公式:
Supervision Timeout >(1 +slaveLatency)*(connectionInterval)
博客講解鏈接:https://www.cnblogs.com/debugdabiaoge/p/16055963.html
好的? 感謝解答
你好,我想再問(wèn)一下 ,我調(diào)用GATT_Indication()這個(gè)函數(shù)發(fā)送數(shù)據(jù)時(shí)候,老是失敗,返回值為0X16,我看原因是blePending,我想問(wèn)一下這是什么原因?qū)е碌?。該怎么解決呢
https://blog.csdn.net/BLE_Baby/article/details/133312351
您參考這篇博客梳理下程序中處理邏輯是否正確。