我參考了你們的例程BLE5.3 使用1M 2M 500K或者 125Kbps通訊 - debugdabiaoge - 博客園 (cnblogs.com)
修改后打印log 顯示開啟廣播 但手機(jī)使用nRF Connect這個(gè)軟件根本搜索不到藍(lán)牙設(shè)備 請問咋搞
使用安卓手機(jī)多嘗試一下,我這里測試按照博客修改無問題。
我的庫是1.41的 用安卓手機(jī) 用另一個(gè)582作主機(jī)都搜索不到
PHY為2M的時(shí)候就可以找到
使用手機(jī)測試,可以多找?guī)撞渴謾C(jī)測試看看情況,有的手機(jī)可能無法搜索大全。
使用582作為主機(jī),我們這里測試一下給予回復(fù)。
582主機(jī)想要搜索125kbps的從機(jī) 主機(jī)需要怎么設(shè)置
使用582主機(jī)搜索125kbps設(shè)備需要這樣修改,如圖在主機(jī)初始化代碼中添加紅框中代碼,
在這邊可以獲取mac:
如圖:
按照上面的方法成功掃描到擴(kuò)展廣播并連接上,但出現(xiàn)了一些問題,如下:
偶爾會出現(xiàn)掃描時(shí)間比較久的情況 主機(jī)的擴(kuò)展廣播掃描間隔為1S 請問從機(jī)的擴(kuò)展廣播間隔可以調(diào)嗎
連接上之后會出現(xiàn)周期性的斷連狀況 主機(jī)和從機(jī)距離拉到3-5米之后更容易斷連 主機(jī)修改了125K的連接間隔GAP_SetParamValue(TGAP_CONN_EST_CODED_INT_MIN, 20)和?GAP_SetParamValue(TGAP_CONN_EST_CODED_INT_MAX, 80)之后情況有好轉(zhuǎn),同樣請問從機(jī)這邊有沒有類似的125K連接參數(shù)需要修改或者主機(jī)還需要配置什么來提高連接的穩(wěn)定性
主機(jī)給從機(jī)發(fā)送數(shù)據(jù)也就是使用GATT_WriteCharValue()函數(shù)偶爾會出現(xiàn)blepending的情況 距離越遠(yuǎn)出現(xiàn)的次數(shù)越高 實(shí)際也就在3-5米左右就會出現(xiàn)blepending 同時(shí)會伴隨著斷連的情況出現(xiàn) 請問有沒有改善的方法可以提高發(fā)送數(shù)據(jù)的穩(wěn)定性
??
從機(jī)的默認(rèn)廣播間隔是50ms,如果沒有對相關(guān)代碼的參數(shù)進(jìn)行修改,
GAP_SetParamValue(TGAP_DISC_ADV_INT_MIN, advInt);
GAP_SetParamValue(TGAP_DISC_ADV_INT_MAX, advInt);
遇到掃描較久一般是從機(jī)在那段時(shí)間沒有廣播,可以看看從機(jī)的打印log,另外也可以將主機(jī)的掃描時(shí)長調(diào)短一點(diǎn),如100ms,
使用GATT_WriteCharValue()函數(shù)偶爾會出現(xiàn)blepending的情況,可以使用最新的例程看看有沒有改善,也可能和發(fā)送的間隔和數(shù)據(jù)量有關(guān),
還有斷連的原因又是什么,從你的描述上看,0x08連接超時(shí)的可能性比較大,測試的板子是自己做的還是我們的demo板,使用demo板做測試沒有復(fù)現(xiàn)以上情況。
板子用的是自己做的 大部分情況都是0x08連接超時(shí),請問如果用你們的開發(fā)板正常情況下125k的頻段通訊距離一般多遠(yuǎn)
另外請教一下GAPROLE_PHY_TX_SUPPORTED和GAPROLE_PHY_RX_SUPPORTED這個(gè)參數(shù)ID怎么用 放在主機(jī)還是從機(jī)使用;
GAPRole_UpdatePHY()的第二個(gè)形參是啥意思 怎么用
在1M下通訊距離在100多米,125Kbps下會好一些,這個(gè)和環(huán)境,天線方向,周圍干擾有很大的關(guān)系,
uint8_t? phy_bit_byte =GAP_PHY_BIT_LE_CODED;
GAPRole_SetParameter(GAPROLE_PHY_TX_SUPPORTED, sizeof(uint8_t), &phy_bit_byte);
正常更新phy按照
PRINT("PHY Update %x...\n", GAPRole_UpdatePHY(peripheralConnList.connHandle, 0, GAP_PHY_BIT_LE_CODED,GAP_PHY_BIT_LE_CODED, 0));
就可以。
如果僅僅只想作為125K的廣播 不做從機(jī) 應(yīng)該怎么配置
這樣的話建議在broadcast中去使用,將adv_type = GAP_ADTYPE_EXT_NONCONN_NONSCAN_UNDIRECT;這樣設(shè)置就可以了,
GAPRole_SetParameter(GAPROLE_ADV_EVENT_TYPE,sizeof(uint8_t),&adv_type);
GAP_SetParamValue(TGAP_ADV_SECONDARY_PHY,GAP_PHY_VAL_LE_CODED); //125K
GAP_SetParamValue(TGAP_ADV_PRIMARY_PHY, GAP_PHY_VAL_LE_CODED);//125K
那主機(jī)的配置的呢 想要搜125K僅廣播的設(shè)備和搜125K從機(jī)設(shè)備配置一樣嗎
是的,和原先主機(jī)搜索配置是一樣的。
作為125k從機(jī)的時(shí)候 主機(jī)能夠搜索到從機(jī) 但是讀出來的廣播數(shù)據(jù)是000000 請問從機(jī)的廣播數(shù)據(jù)怎么設(shè)置