这个广播是为了快速建立连接。这种报文包含两个地址:广播者地址和发起者的地址。 发起设备收到发给自己的定向广播报文后,可以立刻发送连接请求事件作为回应,并进入连接状态。
定向广播事件有特殊的时序要求。完整的广播事件必须每 3.75ms之内重复一次。这一要求似的扫描设备只需扫描 3.75ms 便可以收到定向广播设备的消息。 如下图 所示。
这么快的发送速度让周围充斥着广播信道, 这使得该区域的其他广播事件无法进行广播。所以,协议规定:
也就是定向广播不能持续 1.28s 以上的时间。如果主机没有主动要求停止,或者连接没有建立,控制器都会自动停止广播。 一旦超过1.28s,主机只能使用通用广播让其他设备连接。
uint8_t adv_event_type = GAP_ADTYPE_ADV_LDC_DIRECT_IND; uint8_t Adv_Direct_Addr[B_ADDR_LEN]; uint8_t Adv_Direct_Type = addr_type;//地址类型 tmos_memcpy(Adv_Direct_Addr, McaAddr, sizeof(Adv_Direct_Addr));//目标地址 GAPRole_SetParameter( GAPROLE_ADV_DIRECT_ADDR, sizeof(Adv_Direct_Addr), Adv_Direct_Addr); GAPRole_SetParameter( GAPROLE_ADV_DIRECT_TYPE, sizeof(Adv_Direct_Type), &Adv_Direct_Type); GAPRole_SetParameter( GAPROLE_ADV_EVENT_TYPE, sizeof(adv_event_type), &adv_event_type);
设备初始或者修改广播的时候加上上面这些开启定向广播
CH573 CH582 CH579 peripheral通用外设例子讲解三 修改广播包 - debugdabiaoge - 博客园 (cnblogs.com)
标签:ADV,Adv,DIRECT,Direct,广播,定向 From: https://www.cnblogs.com/debugdabiaoge/p/17148610.html