1. BLE 广播示例

1.1. 功能说明

本示例演示如何使用 LISA Bluetooth 组件实现 BLE 广播功能。 主要功能包括:

  1. 自定义广播数据(Flags, Local Name)。

  2. 自定义扫描响应数据(Manufacturer Specific Data)。

  3. 自定义 GAP 配置(MAC 地址,设备名称)。

1.2. 硬件连接

无需外部连接,使用板载 BLE 功能。

1.3. 示例内容

  1. 初始化 NVS 和 射频校准。

  2. 初始化 LISA Bluetooth 组件。

  3. 系统自动开始广播。

1.4. 编译

重要提示:在编译前,请先确认您使用的开发板型号。SDK 目前支持以下开发板:

  • arcs_evb - ARCS EVB 评估板

  • arcs_mini - ARCS Mini 开发板

根据您的开发板型号,选择对应的编译命令:

在示例目录下执行编译:

# 使用 arcs_evb 开发板
./build.sh -C -DBOARD=arcs_evb

# 或使用 arcs_mini 开发板
./build.sh -C -DBOARD=arcs_mini

Note

如果在 SDK 根目录执行,需要指定示例路径:

# 使用 arcs_evb 开发板
./build.sh -C -S samples/<示例路径> -DBOARD=arcs_evb

# 或使用 arcs_mini 开发板
./build.sh -C -S samples/<示例路径> -DBOARD=arcs_mini

Note

确保已安装对应的工具链。

1.5. 预期输出

[I][sample] === BLE Broadcaster Example ===
[I][lisa_bt] BLE Stack Initialized
[I][lisa_bt] Advertising started
...

1.6. 核心 API

API

说明

lisa_bluetooth_init()

初始化蓝牙协议栈

lisa_bt_get_adv_data()

获取自定义广播数据(弱符号覆盖)

lisa_bt_get_scan_rsp_data()

获取自定义扫描响应数据(弱符号覆盖)

lisa_bt_gap_config()

自定义 GAP 配置(弱符号覆盖)

1.7. 关键代码

/* 自定义广播数据 */
const uint8_t* lisa_bt_get_adv_data(uint8_t *len)
{
    *len = sizeof(user_adv_data);
    return user_adv_data;
}

/* 自定义 GAP 配置 */
void lisa_bt_gap_config(ble_gap_cfg_t *cfg)
{
    // Set custom MAC address
    uint8_t mac[6] = {0x11, 0x22, 0x33, 0x44, 0x55, 0x66};
    memcpy(cfg->addr.addr, mac, 6);
    // ...
}

1.8. 注意事项

  1. MAC 地址: 示例中使用了固定的 MAC 地址,实际产品中应从 NVS 或其他存储中读取。

  2. 广播数据: 广播数据长度有限制(通常 31 字节),请注意不要溢出。