BLE pair示例

源码路径:example/ble/pair

支持的平台

全平台

概述

本例程演示了本平台如何做GAP peripheral进行配对。

例程的使用

本例程为 BLE Peripheral 角色,开机后自动广播并支持配对。可通过手机 BLE APP 完成配对与 GATT 读写验证。

操作流程

  1. 上电后,设备自动开始广播。广播名格式为 SIFLI_APP-xx-xx-xx-xx-xx-xx

  2. 用手机 BLE APP 搜索并连接该设备。

  3. 连接后发送 cmd_diss set_sec xx xx 命令会触发配对流程,例如这里以如下命令为例

cmd_diss set_sec 0 2
  • 参数解释:0 是连接索引 conn_idx(当前连接一般是 0)。 2 是安全等级(对应 LE_SECURITY_LEVEL_NO_MITM_BOND,即不要求 MITM、但进行绑定)。

IO Cap 能力说明(配对方式与此相关):

io_cap 值

枚举

行为说明

典型表现

0

GAP_IO_CAP_DISPLAY_ONLY

设备仅显示数字

手机输入 PIN;设备端打印 SHOW PIN

1

GAP_IO_CAP_DISPLAY_YES_NO

设备显示数字并确认

手机数字确认;设备端打印 SHOW NC

2

GAP_IO_CAP_KB_ONLY

设备可输入数字但不显示

手机显示 PIN;设备端用 diss set_key 输入

3

GAP_IO_CAP_NO_INPUT_NO_OUTPUT

无输入输出

Just Works,一般无需输入/确认

4

GAP_IO_CAP_KB_DISPLAY

既能显示也能输入

手机根据对端策略选择 PIN/确认

发送命令后手机端会弹出配对请求

点击配对后会要求输入PIN码,将日志输出的PIN码填入即可完成配对

  1. 连接成功后可在ble app上面进行 GATT 读写测试:

    • 读特征值:返回 4 字节(小端)数据。

    • 写特征值:支持 1~4 字节,串口日志会打印新值。

硬件需求

运行该例程前,需要准备:

编译和烧录

切换到例程project目录,运行scons命令执行编译:

> scons --board=eh-lb525 -j32

切换到例程project/build_xx目录,运行uart_download.bat,按提示选择端口即可进行下载:

$ ./uart_download.bat

     Uart Download

please input the serial port num:5

关于编译、下载的详细步骤,请参考快速入门的相关介绍。

例程的预期结果

  1. 上电后串口输出 receive BLE power on!,并开始广播。

  2. 手机可搜索到设备并连接,日志出现连接信息 Peer device(xx-xx-xx-xx-xx-xx) connected

  3. 触发配对时日志打印 SHOW PINSHOW NC,完成配对后连接保持。

  4. GATT 读写测试时,打印 Updated app value from:xx to:xx

异常诊断

参考文档

更新记录

版本

日期

发布说明

0.0.1

01/2025

初始版本