WCH沁恒单片机
直播中

尚文清

8年用户 1710经验值
私信 关注
[问答]

CH573 observer最多只能获取到31位数据么?如何获取剩下的数据呢?

在做蓝牙扫描时,我在gapDeviceInfoEvent_t这个结构体中最多只能获得31位数据,怎么获取剩下的数据呢
  

回帖(1)

吴桦

2022-8-26 09:51:39
BLE的广播的内容格式普通广播

  • 广播包 (Advertising Data)
  • 响应包 (Scan Response),需要扫描设备,发起scan_request 才会被回应.
  • 传统广播模式无论广播包,还是扫描响应包都是31 Byte 最长
扩展广播(>=蓝牙5.0)

  • 广播包长度可以设置到255甚至更长


CH57* 系列的芯片都是BLE 4.2 的,这意味着不能实现5.0以后引入的扩展广播包,当然这跟本帖问题关系不太大.


像很多ble soc 一样,wch的蓝牙协议栈,主机扫描时候,为保持灵活性, 协议栈向应用层送的只是原始的广播数据, 同时广播包和扫描响应包 也是分开的.
在扫描时候,通过GAP_DEVICE_INFO_EVENT 事件,在下面结构体里面的eventype指示该包的类型

eventType的有下面类型:
其中紫色框即意味着,当前的包为 扫描回复包,其他的都是广播包



上面,还有个前提,即: 主动扫描
下面函数的第二个参数,必须为true ,才有可能拿到 扫描回复包.
      GAPRole_CentralStartDiscovery( DEFAULT_DISCOVERY_MODE,                               DEFAULT_DISCOVERY_ACTIVE_SCAN,                               DEFAULT_DISCOVERY_WHITE_LIST );
举报

更多回帖

发帖
×
20
完善资料,
赚取积分