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