CH592F MTU怎么修改

APP是可以修改它的MTU,它怎么自己程序設定啊,我修改了那個(gè)宏定義,還是默認的23,發(fā)多了字節也得分包。CH592F作為peripheral

char1~char4默認通信數據長(cháng)度都是1,char5是5。

BLE從機例程中注意修改如下幾處

1.config.h中BLE_BUFF_MAX_LEN改為最大值251

2.gattprofile.h中SIMPLEPROFILE_CHARn_LEN(n=1~5)改為最大值243(char4默認使用notify,協(xié)議開(kāi)銷(xiāo)少一個(gè)字節,故MTU可以到244)

3.如果需要使用notify且發(fā)包負載大于20個(gè)字節,peripheralMTU變量或者CH58xBLE_LIB.h中的ATT_MTU_SIZE需要被擴大為最大負載+3即247(V208中只讀,只能修改peripheralMTU變量)

BLE主機如果是手機APP,要看APP的是否對MTU有調整,部分手機APP在連接后會(huì )自動(dòng)更新MTU。如果手機APP是BLE調試助手,連接后要在A(yíng)PP右上角修改MTU為251(最大值視情況而定)



1、2、我已經(jīng)改了,改為了53;3沒(méi)有用到notify,手機app沒(méi)有對mtu進(jìn)行調整,這個(gè)我也能確定。完成上面的內容后,它的mtu仍然還是23.


手機APP中也要改一改MTU,不同的APP,MTU大小協(xié)商的數值有差異。

可以檢查BLE從機代碼中,連接后的“mtu xx”打印日志,檢查當前的MTU大小。手機APP先用“BLE調試助手”進(jìn)行測試,每次連接成功后都要在右上角菜單中修改MTU。


ATT_GetMTU(connInterval),這個(gè)函數獲取的MTU是正確的嗎


1.config.h中BLE_BUFF_MAX_LEN改為最大值251

2.gattprofile.h中SIMPLEPROFILE_CHARn_LEN(n=1~5)改為最大值243(char4默認使用notify,協(xié)議開(kāi)銷(xiāo)少一個(gè)字節,故MTU可以到244)

上面的1改為了55,后慢慢的用的是SIMPLEPROFILE_CHAR3_LEN改為了34,用的BLE調試助手連接通訊,mtu還是23,超過(guò)20了就分包了


BLE調試助手連接上以后,修改mtu,可以正常使用,超過(guò)20也沒(méi)問(wèn)題??梢哉P薷腗TU。我現在想直接把MTU改為一個(gè)大點(diǎn)的數,不用app來(lái)修改mtu這個(gè)過(guò)程。


MTU是需要主從機之間協(xié)商的,可以由APP主動(dòng)發(fā)起MTU協(xié)商;也可以由BLE從機發(fā)起協(xié)商請求,不過(guò)APP中要有對該請求的處理。

CH573 CH582 CH579藍牙從機(Peripheral)/主機(Central)例程講解一(藍牙主從機收發(fā)數據接口說(shuō)明) - WCH藍牙應用分享 - 博客園 (cnblogs.com)

image.png


只有登錄才能回復,可以選擇微信賬號登錄
97精品依人久久久大香线蕉97-亚洲欧美日韩一区二区三区-国产亚洲欧美精品久久久-久久99精品久久久大学生-亚洲成a人片在线不卡一二三区 97精品依人久久久大香线蕉97-亚洲欧美日韩一区二区三区-国产亚洲欧美精品久久久-久久99精品久久久大学生-亚洲成a人片在线不卡一二三区