CH579官方例程中 adv_ali_light_with_peripheral? 里面藍(lán)牙接收數(shù)據(jù)長(zhǎng)度如何修改,我在config.H函數(shù)里面,BLE_BUFF_MAX_LEN改長(zhǎng)度,但是在simpleProfileChangeCB(uint8_t paramID, uint8_t *pValue, uint16_t len)? 函數(shù)接收數(shù)據(jù)時(shí)候,長(zhǎng)度還是只能收到20個(gè)數(shù)據(jù)長(zhǎng)度,如何修改接收數(shù)據(jù)長(zhǎng)度,謝謝
您好,默認(rèn)代碼中char1~char4默認(rèn)通信數(shù)據(jù)長(zhǎng)度都是1,char5是5。
BLE從機(jī)例程中注意修改如下幾處
①config.h中BLE_BUFF_MAX_LEN改為最大值251
②gattprofile.h中SIMPLEPROFILE_CHARn_LEN(n=1~5)改為最大值243(char4默認(rèn)使用notify,協(xié)議開銷少一個(gè)字節(jié),故MTU可以到244)
③如果需要使用notify且發(fā)包負(fù)載大于20個(gè)字節(jié),peripheralMTU變量或者CH58xBLE_LIB.h中的ATT_MTU_SIZE需要被擴(kuò)大為最大負(fù)載+3即247(V208中LIB.h只讀,只能修改peripheralMTU變量)
BLE主機(jī)如果是手機(jī)APP,要看APP的是否對(duì)MTU有調(diào)整。如果手機(jī)APP是BLE調(diào)試助手,連接后要在APP右上角修改MTU為251(最大值視情況而定)
非常感謝,按照你的解答,問題解決了
#define ATT_MTU_SIZE?????????????????????????? 32+3?? //!< Minimum ATT MTU size //
#define BLE_BUFF_MAX_LEN??????????????????? 64
#define SIMPLEPROFILE_CHAR1_LEN???? 32???? //最大243
#define SIMPLEPROFILE_CHAR2_LEN???? 32????? //最大243
#define SIMPLEPROFILE_CHAR3_LEN???? 32???? //最大243
#define SIMPLEPROFILE_CHAR4_LEN???? 32????? //notify最大244
我把這幾個(gè)參數(shù)都修改了,但是幀超過20接收就分兩幀,發(fā)送就是不行,請(qǐng)問哪里還有問題。
您好,如果用的手機(jī)APP是BLE調(diào)試助手的話,每次連接上APP,手機(jī)APP中也要配置MTU的,默認(rèn)只能到20字節(jié)負(fù)載。