在使能广播功能时,gapMakeDiscoverableRspEvent_t 返回出错。之前的GAP_MakeDiscoverable( gapRole_TaskID, ¶ms )函数调用成功。
但是在gapRole_ProcessGAPMsg中的GAP_MAKE_DISCOVERABLE_DONE_EVENT事件处理时,
pPkt->hdr.status :0x12
pPkt->hdr.event :0xd0
pPkt->opcode :0x03
pPkt->hdr.status这个状态不是SUCCESS,找不到这个status的原因。
原本直接在HidDev_Report这个函数中调用hidDevInitialAdvertising能广播成功,但是现在设置了一个广播事件,然后在HidDev_ProcessEvent处理函数中去处理这个广播事件,也是直接调用hidDevInitialAdvertising,但是就出现了上面的结果了。
请问这个是什么原因引起的?
weiwei xu1:
找到问题了,好像是广播包的间隔时间太小,就会出问题。
之前设置的广播包时间:
#define HID_HIGH_ADV_INT_MIN 16#define HID_HIGH_ADV_INT_MAX 32
现在改成
#define HID_HIGH_ADV_INT_MIN 24#define HID_HIGH_ADV_INT_MAX 48
文档中也没有对广播包的时间有什么要求,坑爹啊。
另外为什么不能把广播包再改小?BLE中最小广播包的时间是在20~40ms之间?