請教為啥藍(lán)牙在執(zhí)行任務(wù)后會提示超時斷開。

當(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。

#define BLE_HCI_CONNECTION_TIMEOUT?? 0x08

超時斷開了,可以嘗試將連接間隔給到1600,同時將SlaveLatency也給大到6。1.png或者可以將任務(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咯。這樣整個流程有點難搞哦,行吧,謝謝你的回答。

10.jpg


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频