579 部分情况收不到广播数据

正常接收都正常。 但如果两个广播包间隔很小后面的就会收不到。  比如下图,用安卓高度软件能接收到 两个包显示在一起了。(ADVDATA 最长31BYTE),但579无论是RF_PHY模式或OBSERVER模式都只能收到前面的包。用串口打印高度后面的包没收到过。

cc.jpg

使用最新的SDK,上图实际上是把广播包,和扫描回复包合并显示的,

而在一些soc上的ble协议栈上,广播包和扫描回复包是分别各进一次 事件的,换句话说,他可能会先给你事件,是广播包,然后紧接着又来一次该事件是扫描回复包,

当下面这个pEvent->deviceInfo.eventType 等于4的时候,这时候是扫描回复包 

PRINT("t:%02x,L:%d\r\n",pEvent->deviceInfo.eventType,pEvent->deviceInfo.dataLen);


SDK的example中,默认对广播包进行了过滤,就是在同一个扫描周期里面,如果重复的mac地址,重复的广播类型,协议栈会直接丢弃,

可以用

GAP_SetParamValue(TGAP_FILTER_ADV_REPORTS,FALSE);

去关掉


只有登录才能回复,可以选择微信账号登录