關于ble擦除綁定信息的問題

使用ch32v208芯片作為從機,主機也是同款芯片。

現在問題在從機上。

我按照博客園的相關博文編寫的ble配對+綁定的代碼。

配對、綁定、連接都正?!,F在問題出現在刪除從機存儲的綁定信息上。


我配置了最大存儲2條配對信息,最大作為2個從機角色。功能正常。

config.h配置如下:

#ifndef?BLE_SNV
#define?BLE_SNV?????????????????????????????TRUE
#endif
#ifndef?BLE_SNV_ADDR
#define?BLE_SNV_ADDR????????????????????????0x08077C00
#endif
#ifndef?BLE_SNV_NUM
#define?BLE_SNV_NUM?????????????????????????2?//默認3
#endif

#ifndef?PERIPHERAL_MAX_CONNECTION
#define?PERIPHERAL_MAX_CONNECTION???????????2
#endif


清空配對信息時,我使用了如下方法:

//?Erase?bonding?info
????????????GAPBondMgr_SetParameter(GAPBOND_ERASE_ALLBONDS,?0,?NULL);
????????????GAPBondMgr_GetParameter(GAPBOND_BOND_COUNT,?&bondingNum);?//?獲取綁定數量
????????????printf("bondingNum?=?%x\n",?bondingNum);
????????????for?(i?=?0;?i?<?bondingNum;?i++)
????????????{
????????????????p?=?tmos_snv_read(mainRecordNvID(i),?sizeof(gapBondRec_t),?buf);?//?獲取一個綁定MAC
????????????????Peripheral_print_bon_list(buf);//串口打印
????????????}

得到的打印信息如下:

bondingNum = 1

Get white List MAC? = ff ff ff ff ff ff?


我的問題是:我清空了所有的配對信息,bondingNum不應該為0嗎?在這種情況下再次進行配對則會出現問題,配對不上,配對上但是保存不了信息等。


通過重啟單片機再次執(zhí)行

?GAPBondMgr_SetParameter(GAPBOND_ERASE_ALLBONDS,?0,?NULL);

則會恢復正常,bondingNum = 0

注意需要在藍牙斷開的情況下調用刪除綁定操作,刪除后可以1s讀取1次綁定的數量,查看是否會有變化。


已確定為庫bug,版本:CH32V20x_BLE_LIB_V1.40。等待官方更新庫文件

暫時解決辦法:綁定了幾個設備則調用 GAPBondMgr_SetParameter(GAPBOND_ERASE_ALLBONDS, 0, NULL);幾次。



只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频