CC2640R2F:藍牙調(diào)試更改設(shè)備名稱
芯片型號:CC2640R2F
模塊型號:RF-BM-4044B3
我正在調(diào)試信馳達科技基于CC2640R2F的RF-BM-4044B3模塊,以TI官方simple_peripheral例程為基礎(chǔ),更改手機端搜索到的藍牙名稱。
1、安卓和IOS搜索藍牙名稱有何區(qū)別?
配置CC2640R2F時,有兩個地方配置了藍牙名,分別是attDeviceName[]和scanRspData[],其中scanRspData[]除了包含local_name外,還有發(fā)射功率和時間間隔信息。
安卓設(shè)備:
搜索顯示的是local_name,需要在scanRspData中更改。
IOS設(shè)備:
搜索顯示的是attDeviceName,需要在attDeviceName中更改。采用lightblue調(diào)試,連接之后點擊'show'可以顯示local_name,由于attDeviceName需要在連接之后讀取,所以之前連接過,在更改2640藍牙名稱后顯示的還是修改前的名稱,重新連接并斷開,再次搜索即可變?yōu)樾薷暮蟮拿Q。
2、程序中如何更改名稱?
上邊介紹名稱從哪里賦值,下面介紹怎么更改,其實很簡單,使用初始化的兩個函數(shù):GAPRole_SetParameter()和GGS_SetParameter(),將名稱數(shù)組按照要求進行賦值操作后,調(diào)用這兩個函數(shù)就可以。項目需求要時刻更改顯示名稱,具體名稱在另外任務(wù)中下發(fā),故每次收到名稱變更要求,就重新賦值并調(diào)用兩個函數(shù)進行配置,實驗顯示名稱會動態(tài)更改,配置時不需要關(guān)閉藍牙協(xié)議棧任務(wù)。
3、更改名稱時注意事項?
例程中scanRspData[]按字節(jié)初始化,attDeviceName[]初始化為字符串,名稱更改時一般為按字節(jié)形式賦值數(shù)組,所以scanRspData重新賦值即可,但更改attDeviceName時需注意,默認字符串賦值末尾會加'\0',未賦值的字節(jié)默認也是0,ASCII碼中為控制字符,不可顯示,會導致在'0'之后的內(nèi)容顯示不來,此為多次實驗結(jié)果,具體原因需要查看GGS_SetParameter()的函數(shù)實現(xiàn)過程。故一定注意在更改藍牙名稱時,不要在名稱中間出現(xiàn)0x00或ASCII中的不可顯示字符,空格的話可直接賦值' '或0x20。