CH582 藍(lán)牙連接斷開 Reason:28

請問?#define? BLE_HCI_INSTANT_PASSED???0x28?斷開如何解決?


1.大循環(huán)里沒有任何延時操作

__attribute__((noinline))?void?Main_Circulation()
{
????while?(1)
????{
????????TMOS_SystemProcess();
????}
}

2.所有循環(huán)任務(wù)都是通過tmos_start_task來創(chuàng)建的

3.藍(lán)牙任務(wù)1s定時,每次發(fā)送16字節(jié)數(shù)據(jù)

4.還有一個任務(wù)1s定時,里面執(zhí)行了一些時序操作,整個過程需要耗時170ms左右


調(diào)試發(fā)現(xiàn),如果執(zhí)行耗時170ms的時序操作,藍(lán)牙偶爾就會斷開Disconnected.. Reason:28


為了滿足時序要求,里面有使用到DelayUs(i);延時


感覺時序函數(shù)沒辦法修改了,它就要耗時170ms.


能不能通過修改藍(lán)牙的一些配置參數(shù),解決這個問題?




要注意藍(lán)牙功能開發(fā)中避免直接使用延時函數(shù),如果時序要求延時可以通過TMOS任務(wù)將需要延時的任務(wù)放在一段時間后處理(170ms)。

連接斷開原因參考:

藍(lán)牙BLE斷開原因?qū)φ毡?- SweetTea_lllpc - 博客園 (cnblogs.com)

TMOS任務(wù)講解參考:

WCH TMOS用法詳解 - debugdabiaoge - 博客園 (cnblogs.com)


我需要實(shí)現(xiàn)的時序功能延時是TWI_Delay_us(422);完整執(zhí)行一個時序就要耗費(fèi)140-170ms左右,而TMOS?系統(tǒng)時鐘單位為?625us

根本沒辦法把時序任務(wù)拆分到各個小段任務(wù)中.

根據(jù)?WCH TMOS用法詳解?


2、建議不要在單個任務(wù)中執(zhí)行超過連接間隔一半時長的任務(wù),否則將影響藍(lán)牙通訊


那么我的任務(wù)耗時170ms,我就把連接間隔設(shè)置成340ms


// 最小連接間隔 (units of 1.25ms, 6=7.5ms)

#defineDEFAULT_DESIRED_MIN_CONN_INTERVAL6


// 最大連接間隔 (units of 1.25ms, 272=340ms)

#defineDEFAULT_DESIRED_MAX_CONN_INTERVAL272


藍(lán)牙還是會斷開,斷開原因并不是0x28了,而是Disconnected.. Reason:8(連接超時)


最大連接間隔增大,會導(dǎo)致連接超時???


有效連接間隔可以查看打印信息觀察。舉例:最小最大連接間隔配置為270-272。這樣連接間隔協(xié)商可能在272左右。

可以先參考該博客:

BLE廣播間隔和連接間隔(CH582) - SweetTea_lllpc - 博客園 (cnblogs.com)

針對你的功能,不建議直接使用延時函數(shù),對藍(lán)牙連接會有影響,并且其延時準(zhǔn)確度也不高。

建議通過定時器處理,在函數(shù)中確定好進(jìn)入中斷的時間,進(jìn)入中斷后,直接在定時器中斷拉波形。下一次再重新計(jì)算中斷觸發(fā)時間。進(jìn)而實(shí)現(xiàn)時許要求。



感謝,使用定時器中斷的來做時序,藍(lán)牙就不會斷開了


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

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