You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Micro:bit作为蓝牙低功耗(BLE)中心角色?

Micro:bit 实现 BLE 中心角色操作指南

核心前提

Micro:bit 默认搭载的 S113 SoftDevice 仅支持 BLE 外设角色,要实现中心角色,需更换为支持中心模式的 SoftDevice,并基于 nRF SDK 开发自定义固件。


步骤1:更换适配的 SoftDevice

  • Micro:bit v1(nRF51822):替换为 S130(nRF51 系列支持中心角色的 SoftDevice),推荐版本 v2.0.1(兼容性较好)。
  • Micro:bit v2(nRF52833):替换为 S140(nRF52 系列支持双模的 SoftDevice),推荐版本 v7.3.0。
  • 操作方式:
    1. 用 nRF Connect for Desktop 的「Programmer」工具连接 Micro:bit。
    2. 先擦除芯片原有固件(点击「Erase all」)。
    3. 选择对应 SoftDevice 的 hex 文件,点击「Write」完成烧录。

步骤2:基于 nRF SDK 开发中心角色代码

  1. 下载对应 SDK:
    • v1 选 nRF SDK 15.3.0(适配 S130 v2.0.1);v2 选 nRF SDK 17.1.0(适配 S140 v7.3.0)。
  2. 复用官方中心角色示例:
    • 找到 SDK 中的 ble_app_central 示例(路径:examples\ble_central\ble_app_central),以此为基础修改。
  3. 适配 Micro:bit 硬件:
    • 修改 GPIO 配置,适配 Micro:bit 的按键(比如按键 A/B)、LED 矩阵的引脚映射。
    • 配置 UART 用于调试输出(Micro:bit 可通过 USB 虚拟串口打印日志)。
  4. 核心业务逻辑实现:
    • 初始化 SoftDevice,设置中心角色的参数(比如连接间隔、超时时间)。
    • 启动扫描:调用 sd_ble_gap_scan_start(),设置扫描间隔(如 100ms)、扫描窗口(如 50ms)。
    • 处理扫描事件:在 BLE 事件回调函数中捕获 BLE_GAP_EVT_ADV_REPORT,解析广播数据筛选目标设备。
    • 发起连接:调用 sd_ble_gap_connect(),传入目标设备的地址和连接参数。
    • 发现与操作 GATT 服务:连接成功后,调用 sd_ble_gattc_primary_services_discover() 发现服务,再通过 sd_ble_gattc_char_discover() 找到目标特征,最后用 sd_ble_gattc_write()/sd_ble_gattc_read() 读写特征。

步骤3:编译与烧录固件

  • 用 GCC 或 Keil 编译代码,生成应用程序 hex 文件。
  • 将 SoftDevice hex 和应用程序 hex 合并(用 nRF Command Line Tools 的 mergehex 工具),然后通过 nRF Connect 或 Micro:bit 的 USB 拖放方式烧录。

注意事项

  • Micro:bit 官方的 MakeCode、Python 等工具均不支持 BLE 中心角色,必须基于原生 nRF SDK 开发。
  • nRF51822 内存有限,开发时需精简代码,关闭不必要的功能,避免 RAM 溢出。
  • 务必保证 SDK 版本与 SoftDevice 版本严格匹配,否则会出现兼容性问题。

内容的提问来源于stack exchange,提问作者niutech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 16:11:12