BLE Central 教程
概述
本教程说明 BLE Central(主机) 示例:将协议栈初始化为中央设备、扫描广播、并在回调中处理 TAL_BLE_EVT_ADV_REPORT。主要接口为 tal_ble_bt_init(角色 TAL_BLE_ROLE_CENTRAL)、tal_ble_scan_start 与事件回调(打印对端地址、地址类型、RSSI、广播原始数据)。示例位于 TuyaOpen 仓库的 examples/ble/ble_central。
前置条件
要求
- 板级配置支持 BLE 且可构建
examples/ble/ble_central。 - 附近有 BLE 外设(手机 nRF Connect、另一块开发板,或 BLE Peripheral 教程 中的设备)。
- 串口日志便于确认扫描输出。
步骤
-
在 TuyaOpen 仓库中打开
examples/ble/ble_central。 -
在
tos.py config choice中选择支持 BLE Central 的板型。 -
编译并烧录:
cd examples/ble/ble_centraltos.py config choicetos.py build -
启动后调用
tal_ble_bt_init(TAL_BLE_ROLE_CENTRAL, __ble_central_event_callback),并用TAL_BLE_SCAN_PARAMS_T启动扫描(示例为主动扫描,interval/window 为0x400,超时较大)。 -
收到广播报告后,回调打印地址字节、公共/随机地址类型、ADV 类型、RSSI 以及
p_data/data_len的十六进制,随后调用tal_ble_scan_stop()(示例在回调中停止扫描)。
预期结果: 周边有外设时,日志出现 TAL_BLE_EVT_ADV_REPORT,含对端地址、RSSI 与广播数据。
实现说明
- Central 负责扫描;Peripheral 负责广播。可与
examples/ble/ble_peripher双板对测。 - 按产品需求调整
scan_cfg(类型、间隔、窗口、超时、filter_dup)。结构体定义见tal_bluetooth.h中的TAL_BLE_SCAN_PARAMS_T。 - 示例在回调里停止扫描;若需持续扫描,勿在每次报告后都
tal_ble_scan_stop,或按需重新tal_ble_scan_start。 - 地址类型、AD 结构等背景见
examples/ble/ble_central/README.md。
参考
- 源码:
examples/ble/ble_central/src/example_ble_central.c - BLE Peripheral 教程
- TAL Bluetooth API 参考
- 示例索引