BLE 广播示例
源码位置: samples/bluetooth/ble/peripheral/broadcaster 查看源码
功能说明
本示例演示如何使用 LISA Bluetooth 组件实现 BLE 广播功能。 主要功能包括:
自定义广播数据(Flags, Local Name)。
自定义扫描响应数据(Manufacturer Specific Data)。
自定义 GAP 配置(MAC 地址,设备名称)。
硬件连接
无需外部连接,使用板载 BLE 功能。
示例内容
初始化 NVS 和 射频校准。
初始化 LISA Bluetooth 组件。
系统自动开始广播。
编译
重要提示:编译前需要先确认当前示例支持的目标板型,然后将板型标识传给 -DBOARD。请按以下方式选择:
确认示例限制:查看当前示例
README中的硬件连接和注意事项,确认是否限定板型。参考示例配置:查看相关示例目录下的
sample.yaml,确认支持的板型。填写板型标识:SDK 内置板型的标识为
boards/下的目录名。例如实际使用的板型目录为boards/<板型名称>/,则编译参数填写为-DBOARD=<板型名称>。
在 SDK 根目录执行编译,并将命令中的 <示例路径> 和 <板型名称> 替换为实际值。
Linux 使用 build.sh:
# 通用命令
./build.sh -C -S samples/<示例路径> -DBOARD=<板型名称>
# 示例:使用 arcs_evb 开发板
./build.sh -C -S samples/<示例路径> -DBOARD=arcs_evb
Windows PowerShell 使用 build.ps1:
# 通用命令
.\build.ps1 -C -S samples/<示例路径> -DBOARD=<板型名称>
# 示例:使用 arcs_evb 开发板
.\build.ps1 -C -S samples/<示例路径> -DBOARD=arcs_evb
Note
确保已安装对应平台的工具链和 ListenAI 开发工具包。Windows 环境请先执行 .\env.ps1 或直接使用 .\build.ps1 自动加载环境。
注意事项:-DBOARD 填写的是板型标识,不是芯片系列名称。如果示例有板型专用配置或额外编译参数,以示例 README 中的说明为准。
预期输出
[I][sample] === BLE Broadcaster Example ===
[I][lisa_bt] BLE Stack Initialized
[I][lisa_bt] Advertising started
...
核心 API
API |
说明 |
|---|---|
|
初始化蓝牙协议栈 |
|
获取自定义广播数据(弱符号覆盖) |
|
获取自定义扫描响应数据(弱符号覆盖) |
|
自定义 GAP 配置(弱符号覆盖) |
关键代码
/* 自定义广播数据 */
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);
// ...
}
注意事项
MAC 地址: 示例中使用了固定的 MAC 地址,实际产品中应从 NVS 或其他存储中读取。
广播数据: 广播数据长度有限制(通常 31 字节),请注意不要溢出。