WCH沁恒单片机
直播中

卢表镜

7年用户 1016经验值
私信 关注
[问答]

CH582如何强制发送广播?

RT,原来使用PHY直接发,现在功能升级,使用了外设模式。通过广播发送状态,当状态改变的时候如何强制发送?不然广播间隔较长,要等到下次广播。还有能否动态修改广播长度?如GAPRole_SetParameter(GAPROLE_ADVERT_DATA, sizeof(advertData), advertData);重新设置
另外582如何广播蓝牙5的大广播包,库里面好像没有ADV_EXT_IND、AUX_ADV_IND、AUX_SYNC_IND以及AUX_CHAIN_IND,称作extended advertising PDUs等
  

回帖(2)

罗莹

2022-8-1 10:39:27
使用从机模式未连接状态下会每隔一段时间往外发送广播包,修改广播间隔:


动态修改广播内容,首先需要把数组中的数据清零,以防你修改后的包的格式不正确,确保正确可不清,接下来的赋值需要符合包格式。
举报

梁宏满

2022-8-1 10:39:33

  • 未找到DYNAMIC_CHANGE相关代码,不过可以自己摸索下。
  • 强制发送,上面只是改变了周期,没法强制发送。就是一个API类似RF_TX一样,强制发送广播
  • 蓝牙5广播 SYNC_ADC例子找到了,但是里面使用周期广播方式,在第二类广播通道发送。其实我想要的是这种方式,使用蓝牙5大广播,但是还是373839主通道(第二类通道不用了),看蓝牙协议只用把PDU改了0x07,就是SKD里的GAP_ADTYPE_EXT_NONCONN_NONSCAN_UNDIRECT。然后根据下图格式来发送。因为不知道SDK里是否已经完整,要一点点试很麻烦。因为新的扩展包只需要包含MAC地址,然后我想带上可选的功率选项,是否TGAP_ADV_TX_POWER设置一下就行。
  • observer有没有静默监听?就是一直在373839上监听,而不发送扫描请求。原来使用的方式是在39通道RF_RX,这样就大概率不会丢包,但是现在有点想扩展到蓝牙5,因为第二类广播通道监听请求,想试下传统的observer会不会丢包。

举报

更多回帖

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