Skip to content
## BLE 是什么

**BLE(Bluetooth Low Energy,低功耗蓝牙)是蓝牙 4.0 引入的低功耗无线技术,专为电池供电的小设备设计:平时几乎不耗电,需要时短促通信。Ai-M6x(BL616/BL618)内置 BLE 5.x 控制器,可以当从机(Peripheral)广播数据、等服务端连接,也可以当主机(Central)**扫描并连接其他设备。

用大白话讲:BLE 设备平时“喊话”(广播),别人听到后可以来“对话”(连接)。广播不耗电,适合做信标(iBeacon);连接后可以读写数据,适合做遥控器、传感器、手机配网。

关键概念

  • 角色:Central(主机,主动扫描/连接)与 Peripheral(从机,广播/等待连接);SDK 例程 central 是主机、peripheral 是从机。

  • 广播(Advertising):从机周期性地对外发广播包(含设备名、服务 UUID、厂商数据等);广播类型分可连接/不可连接、定向/非定向。

  • GATT:连接后双方按“服务-特征”模型交换数据;特征是数据的最小读写单位,有 UUID(128 位)标识。

  • MTU:单次可传输的最大数据长度,默认 23 字节,协商后可到 247 字节左右。

  • 配对/绑定:加密连接的过程;广播和连接本身不需要配对。

SDK 的 BLE 架构

SDK 使用 Zephyr 风格 BLE 协议栈:控制器(Controller)负责射频收发,主机协议栈(Host)负责 GAP/GATT/L2CAP。例程的启动流程统一为:btble_controller_init 初始化控制器 → hci_driver_init 初始化 HCI → bt_enable(bt_enable_cb) 启动主机栈,回调里再注册连接回调、开始广播/扫描。

SDK 还提供低内存的 直接控制器 APIbtble_adv_* 等,见 iBeacon 例程),绕开主机栈,只适合极简广播场景。

本栏目页面导航

按顺序阅读:BLE 从机(最简单)→ BLE 主机iBeaconBLE 配网BLE 命令行调试

页面角色作用对应 SDK 例程
BLE 从机Peripheral广播并开放读写/通知特征examples/btble/peripheral
BLE 主机Central扫描、连接、发现服务并读写examples/btble/central
iBeacon广播周期广播 iBeacon 信标数据自编示例(基于标准协议栈;SDK adv 例程仅 BL616CL)
BLE 配网Peripheral手机通过 BLE 给设备配 Wi-Fiexamples/wifi/sta/smartconfig_ble
BLE 命令行调试调试工具串口命令操作 BLE:扫描/广播/连接/GATT/吞吐examples/btble/btble_cli
BLE 低功耗低功耗广播/连接下的 BLE 低功耗与功耗统计examples/pmu/wl_ble_lp
WiFi 与 BLE 共存共存WiFi 连接的同时保持 BLE 广播/连接examples/wifi/coex/wifi_ble
BLE HID 键鼠发送Peripheral(方案)文本/语音经 BLE 转 USB HID 键鼠examples/solution/TvBox/ble_hid_cli_sender(仅 BL616CL)

FAQ

  • Q:BLE 和经典蓝牙有什么区别? 经典蓝牙面向音频/大流量(如耳机),功耗高;BLE 面向小数据、低功耗(传感器、遥控器),两者协议不互通。

  • Q:广播和连接能同时进行吗? 可以:连接建立后从机默认停止广播,断开后例程会自动重新广播(peripheral 例程断开回调里 set_adv_enable(true))。

  • Q:手机搜不到设备? 检查设备是否在广播(从机/广播例程)、手机蓝牙是否开启、距离是否太近(1 米内偶尔扫描不到属正常,稍移开再试);部分手机对 128 位 UUID 过滤,可用 nRF Connect 查看原始广播。

遇到问题?

如有其他问题,请到统一的提问与讨论区:Ai-Thinker Discussions

Released under the MIT License. Build Time 2026-09-11 14:52:23