使用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