當(dāng)我用BLE藍(lán)牙調(diào)試助手往simple profile發(fā)送數(shù)據(jù)時,程序會調(diào)用tmos_start_task在1秒后執(zhí)行一個任務(wù)事件,任務(wù)事件大概有5秒鐘,我將TIMEOUT設(shè)置成1000,當(dāng)任務(wù)結(jié)束后,它繼續(xù)執(zhí)行例程打印RSSI值的任務(wù)事件。按我的理解的話,RSSI能打印了,證明還有富余的時間,不然應(yīng)該是任務(wù)結(jié)束了直接就提示斷開了吧。但是為啥打印了幾次后提示斷開,原因是0x08。
查看: 1319
回復(fù): 4
請教為啥藍(lán)牙在執(zhí)行任務(wù)后會提示超時斷開。
熱門產(chǎn)品 :
CH32X035: 32位USB+USB PD單片機
#define BLE_HCI_CONNECTION_TIMEOUT?? 0x08
超時斷開了,可以嘗試將連接間隔給到1600,同時將SlaveLatency也給大到6。或者可以將任務(wù)拆分一下,確保任務(wù)的執(zhí)行時間小于連接間隔的一半。
但是我試過將TIMEOUT設(shè)置成3000,也試過同時設(shè)置SlaveLatency,它仍舊是打印一段時間RSSI值然后斷開,最后打印斷開的時間正是我設(shè)置的TIMEOUT時間,把我整不會了。。。而且連接間隔我看說明好像是一個范圍,是不可控的吧,最大只有4s,最小1.25ms。
提供一個范圍進(jìn)行協(xié)商,最終建立連接肯定會協(xié)商出實際的連接間隔。
如果上述方法的參數(shù)已經(jīng)給到最大了,那就拆分你的任務(wù)去進(jìn)行管理。
那最大的連接間隔是4s,確保少于一半,那就是我得讓我的每個任務(wù)最大不超過2s咯。這樣整個流程有點難搞哦,行吧,謝謝你的回答。
請勿發(fā)布廣告和違法內(nèi)容, 代碼可以選擇編輯器代碼語言格式, 更易他人閱讀幫助您, 或者留下聯(lián)系方式,以便更好更快服務(wù)您
只有登錄才能回復(fù),可以選擇微信賬號登錄