mytemp_data0_len=8;
需要發(fā)送例如;1234567+回車,發(fā)送結(jié)果只有12,len是打印了,不知道什么問題
mytemp_data0_len=8;
需要發(fā)送例如;1234567+回車,發(fā)送結(jié)果只有12,len是打印了,不知道什么問題
發(fā)送數(shù)據(jù)之后,需要釋放。舉例,先發(fā)送按鍵A,然后釋放;再發(fā)送按鍵B,然后釋放。這樣可以發(fā)送所需要的所有鍵值。
釋放了,發(fā)送8個(gè)0x00,不是就是釋放嗎
發(fā)送數(shù)據(jù)之后,還需要判斷是否發(fā)送成功。實(shí)際在發(fā)送數(shù)據(jù)的時(shí)候,建議一個(gè)個(gè)的發(fā)送出去,或者一個(gè)數(shù)據(jù)包里面填寫幾個(gè)字節(jié),但是填寫字節(jié)過多不一定會(huì)完全被識(shí)別到。
或者可以像例程一樣測試,發(fā)送一個(gè),里面釋放,再發(fā)送下一個(gè)。
注意判斷返回值即是否發(fā)送成功。
方法二不適合,因?yàn)榘l(fā)送傳感器值到文本里面,鍵值會(huì)有重復(fù)的 ,如0.0005,只能顯示0.5
用原工程測試,效果如下
還有就是換成按間隔發(fā)送數(shù)據(jù)也有問題
上面是讀到按鍵后,打開鍵值發(fā)送時(shí)間20ms,發(fā)送數(shù)據(jù)0.864 偶爾會(huì)有個(gè)數(shù)據(jù)是正常
發(fā)送失敗則再次發(fā)送,連接間隔調(diào)小一些。先從比較大的間隔發(fā)送,然后降低速度。發(fā)送失敗不僅要檢查有效鍵值的發(fā)送,還需要注意釋放鍵(0)的發(fā)送,否則一直得不到釋放會(huì)出現(xiàn)上圖的情況。
BLE_BUFF_NUM?控制器緩存的包數(shù)量? 這個(gè)最大值是多少, 意思是緩存到這么多個(gè)包后在發(fā)送嗎
BLE_BUFF_NUM是緩存包的數(shù)量,防止發(fā)送包異常進(jìn)行緩存的操作。
比如主機(jī)在一直往外發(fā)包的時(shí)候,藍(lán)牙系統(tǒng)不一定來得及處理,因此預(yù)留一個(gè)緩沖稍后再發(fā)送避免直接丟棄。
一般是在大數(shù)據(jù)量的時(shí)候使用到,可以給15,不建議給更大,會(huì)消耗RAM。一般情況藍(lán)牙傳輸使用默認(rèn)例程的5即可。
現(xiàn)在能正常發(fā)出來,但是我們測試發(fā)現(xiàn),安卓手機(jī)與電腦上沒有問題,但是換成華為手機(jī)就會(huì)出現(xiàn) 偶爾符號(hào)錯(cuò)位,如發(fā)送0.0005 接收到 00.005
需要判斷數(shù)據(jù)發(fā)送的準(zhǔn)確性,即發(fā)送數(shù)據(jù)是否成功,數(shù)據(jù)是否為正確,釋放按鍵是否成功。
可以藍(lán)牙抓包查看發(fā)送的數(shù)據(jù)是否為正確。