藍(lán)牙每次只能發(fā)20字節(jié)左右的數(shù)據(jù),連續(xù)發(fā)送幾百字節(jié),會(huì)出現(xiàn)丟包現(xiàn)象。
加大連接間隔等參數(shù),仍存在丟包;
造成的原因有哪些?
藍(lán)牙每次只能發(fā)20字節(jié)左右的數(shù)據(jù),連續(xù)發(fā)送幾百字節(jié),會(huì)出現(xiàn)丟包現(xiàn)象。
加大連接間隔等參數(shù),仍存在丟包;
造成的原因有哪些?
首先藍(lán)牙每包數(shù)據(jù)的大小是根據(jù)MTU來(lái)決定的,默認(rèn)mtu為23,那么你就只能每包20字節(jié),修改mtu為247,則每包可以發(fā)送244字節(jié),發(fā)送又是如何發(fā)送的,判斷發(fā)送成功發(fā)下一包還是一直猛發(fā),通訊的距離以及周?chē)母蓴_也可能造成。
修改mtu可參考http://www.findthetime.net/bbs/thread-88224-1.html
想問(wèn)一下,數(shù)據(jù)發(fā)送成功的返回函數(shù)app_drv_fifo_result_t 里面的APP_DRV_FIFO_RESULT_SUCCESS = 0,嗎?
是的,建議把mtu調(diào)大試試,
MTU修改了,還是存在丟數(shù)據(jù)的現(xiàn)象,但首次上電和主機(jī)通信的第一次通信,不會(huì)丟包,后期存儲(chǔ)變多,就會(huì)存在丟包。每次發(fā)送的數(shù)目一定,存儲(chǔ)數(shù)據(jù)量的大小對(duì)發(fā)送有影響嗎?距離十分近,且周?chē)鸁o(wú)干擾,還有什么影響因素嗎?
我這里嘗試了一次發(fā)送230字節(jié)的數(shù)據(jù),發(fā)現(xiàn)現(xiàn)象是正常的。你這里需要發(fā)送長(zhǎng)包,可以使用從機(jī)例程進(jìn)行修改,或者使用BLE_UART的例程也嘗試一下。