一只啥时候瘦 发表于 2025-11-28 15:15:51

Nordic 蓝牙设备配对时频繁失败,常见原因是什么?


在多设备组网场景中,nRF52832 与 nRF52840 配对失败是高频问题,核心源于安全参数不匹配,且旧版 SDK 兼容性问题会加剧该现象:​
安全参数协商冲突:IO 能力(如 DisplayOnly/KeyboardDisplay)或 MITM(中间人保护)状态不一致是主因。例如 52832 默认 IO 能力为 NoInputNoOutput,而 52840 默认开启 KeyboardDisplay,需统一配置为BLE_GAP_IO_CAPS_NONE,并禁用 MITM(m_sec_param.mitm = 0)。​
LE Secure Connections 支持不全:SDK7.0 以下的 nRF52832 对 LE SC 支持有限,需手动关闭该功能,回退至 Legacy Pairing 模式。​
LTK 密钥分发错位:密钥交换阶段若主从设备 LTK 分发方向相反,会导致加密失败,需确保sd_ble_gap_sec_params_reply()按主从角色正确返回密钥。​
调试时可借助 nRF Sniffer 抓包,若捕获到 Pairing Failed(OpCode 0x0C),即说明参数不匹配;同时需清除 NVDS 中的旧 bond 信息(nrfjprog --erasepage 0x7F000),避免历史配置干扰。实际项目中,建议统一使用 SDK12.3 及以上版本,并在代码中固化 SM 安全等级为SECURITY_MODE_1_LEVEL_2。

页: [1]
查看完整版本: Nordic 蓝牙设备配对时频繁失败,常见原因是什么?