Central例程更改默認(rèn)最大連接間隔后找不到服務(wù)

Central例程運(yùn)行在CH32F208WBU6,自己畫的板子

從機(jī)運(yùn)行在BLE調(diào)試助手,手機(jī)是小米11


情況是這樣,Central例程有個(gè)宏定義

#define DEFAULT_MAX_CONNECTION_INTERVAL 60

在這種情況下一切正常,能掃描到,建立連接,更新連接參數(shù),找到從機(jī)主服務(wù)FFF0,找到特征值,然后發(fā)送數(shù)據(jù),一切正常。


我把60改成100后,找不到FFF0服務(wù)

#define DEFAULT_MAX_CONNECTION_INTERVAL 100

KEIL4.png

圖中斷電處均無法進(jìn)

KEIL3.png


隨后我跟蹤查看連接參數(shù)是否有更新成功,結(jié)果用注釋寫出來了??礃幼討?yīng)該是協(xié)商成功了。圖如下

KEIL6.png

還有另外一個(gè)問題,連接超時(shí)的問題。在#define DEFAULT_MAX_CONNECTION_INTERVAL 60 的情況下,我每隔1秒鐘就發(fā)送一個(gè)字節(jié)的數(shù)據(jù)給從機(jī)。大概在20~30分鐘的時(shí)候,連接會(huì)超時(shí)。返回的reason就是連接超時(shí)0x08。測(cè)了好幾次,基本都是這樣,一開始沒問題,放在一邊不管它,程序就進(jìn)Terminate Link事件了。從機(jī)用的就是BLE 調(diào)試助手。下圖是Terminate Link事件處理的代碼,這部分我都沒怎么動(dòng),都是例程的原代碼。

KEIL7.png

接下來的一張圖片是我添加的一個(gè)tmos循環(huán)事件START_WRITE_EVT,一秒鐘發(fā)送一個(gè)字節(jié)給從機(jī)。替換了原代碼中的"START_READ_OR_WRITE_EVT"。

KEIL8.png











你好,優(yōu)先使用開發(fā)板測(cè)試一下是否出現(xiàn)連接后無法進(jìn)行枚舉服務(wù)的現(xiàn)象。

并測(cè)試僅修改連接間隔為100,其他參數(shù)均不配置使用原始例程,是否出現(xiàn)無法進(jìn)行枚舉的現(xiàn)象,理論上是可以進(jìn)行枚舉的。?

reason8斷開是藍(lán)牙連接超時(shí)了,建議也是先通過開發(fā)板測(cè)試是否出現(xiàn)該現(xiàn)象。并查看代碼里面是否有阻塞或者其他干擾導(dǎo)致的通訊失敗。


你好,我這邊沒有評(píng)估板,只有自己畫的板子。這個(gè)板子應(yīng)該是沒問題的,硬件工程師都是老師傅了。況且我在運(yùn)行的代碼是直接從藍(lán)牙例程改過來的,沒有去用一些外設(shè)或者亂七八糟的東西。

問題解決的經(jīng)過與結(jié)果:

我用原例程簡單的只改了一些必要的參數(shù)比如MAC地址啥的,然后運(yùn)行,還是沒辦法在改了初始連接間隔的情況下找到從機(jī)的服務(wù)。再之后,找到了一個(gè)可疑的地方,我也不知道對(duì)不對(duì),因?yàn)槲覍?duì)藍(lán)牙真的一竅不通,但是確實(shí)改了之后就沒問題了。

原例程是連接參數(shù)協(xié)商與請(qǐng)求服務(wù)并行,我把請(qǐng)求服務(wù)挪動(dòng)到協(xié)商之后,就沒問題了。代碼截圖如下圖

KEIL9.png



ZSBD

KEIL10.png


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

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