BLE 周期广播同步示例

源码路径:example/ble/periodic_adv_sync

支持的平台

  • eh-lb52x

  • eh-lb56x

  • eh-lb58x

概述

本例程演示周期性广播同步的使用方式。

例程的使用

  1. 开机后通过finsh命令”diss sync create”创建周期广播同步,如果创建成功可以在log看到”PER_ADV_SYNC created [idx]”的打印,其中idx为分配的handle。

  2. 通过finsh命令”diss scan start [is_dup] [scan_interval] [scan_window] [duration]”开启scan来搜索周期广播。

    1. 命令示例如下:“diss scan start 1 60 30 30000”。 该命令会持续Scan 30秒。

    2. 如果搜索到周期广播会打印”Periodic adv found addr_type [type], addr:0xXX:XX:XX:XX:XX:XX, adv_sid:[adv_sid]”。

  3. 建立周期广播同步要用finsh命令”diss sync start [addr] [addr_type] [adv_sid] [sync_to]”, addr,addr_type和adv_sid是上面搜索到周期广播后打印的地址和地址类型和广播SID; sync_to代表停止sync的时间,以10ms为单位

    1. 如下为一个示例:“diss sync start be:56:44:33:22:c2 0 0 80”

    2. 由于建立周期广播同步必须要开启scan,前面的命令设置的30秒scan可能在建立周期广播已经停止,若scan已经停止可以在log中看到打印”Scan stopped”。scan停止情况下需要再重新开启scan。

    3. 周期广播同步建立后会打印”PER_ADV_SYNC established(addr)“以及”per_adv_data:”

硬件需求

运行该例程前,需要准备:

编译和烧录

切换到例程project目录,运行scons命令执行编译:

> scons --board=eh-lb525 -j32

切换到例程project/build_xx目录,运行uart_download.bat,按提示选择端口即可进行下载:

$ ./uart_download.bat

     Uart Download

please input the serial port num:5

关于编译、下载的详细步骤,请参考快速入门的相关介绍。

例程的预期结果

例程启动后:

  1. 能够搜索到周期广播并建立周期广播同步。

异常诊断

参考文档

更新记录

版本

日期

发布说明

0.0.1

01/2025

初始版本