首页/协议速查/BLE
🔷

BLE 低功耗蓝牙

无线协议
手机互联首选:低功耗+广播/连接模型,手环/遥控/信标/智能硬件标配。
🧩 核心原理
📈 时序 / 工作过程图
BLE 连接建立流程广播 → 扫描 → 连接 → 服务发现 → 数据交互① 广播Advertiser② 扫描Scanner③ 连接Connection④ GATT 读写服务/特征广播包间隔 20ms-10.24s(耗电与发现速度权衡)· 连接间隔 7.5ms-4sGATT:服务(Service) → 特征(Characteristic) → 描述符;通知/指示省去轮询
⚙️ 配置 / 使用要点
  1. 初始化协议栈,设置广播数据/间隔
  2. 定义 GATT 服务与特征
  3. 连接回调:连接/断开/MTU更新
  4. 数据收发:写请求/通知/指示
  5. 功耗:广播间隔与连接间隔权衡
🛠️ 项目示例
BLE 广播 + 自定义服务(HAL/协议栈风格)
// 广播数据:可连接 + 设备名 + 服务UUID
uint8_t adv[] = {
  0x02, 0x01, 0x06,                        // Flags
  0x03, 0x03, 0xAA, 0xFE,                  // 服务UUID
  0x08, 0x09, 'S','H','I','G','U','A','N','G' // 设备名
};
gap_advertise_start(adv, sizeof(adv), 100); // 100ms间隔

// 服务端注册特征(如电池电量通知)
ble_add_char(0x2A19, PROP_NOTIFY, on_read, on_write);
// 电池变化:
ble_notify(0x2A19, &level, 1);              // 主动推送
❓ 面试高频
BLE广播和连接的区别?
广播单向不发连接,任何人都能收;连接是点对点双通道(两个连接事件间隔),可加密、可靠、双向
怎么省电?
调大广播/连接间隔、减少数据量、用通知代替轮询、广播/连接超时后进入深度睡眠
BLE和经典蓝牙区别?
BLE低功耗、小数据包、短连接;经典蓝牙高吞吐音频(如耳机HSP/A2DP),两者不兼容
✅ 自查清单 (点击勾选,本地保存)
0/0
知道广播-扫描-连接流程
理解GATT服务/特征
知道通知vs轮询
知道连接间隔与功耗
知道BLE vs 经典蓝牙