问题中所提的 btapp, 即是使用传统蓝牙的库, 传统蓝牙的库也是支持 BLE 的. 使用测试如下:
1. 使用的 SDK 是 V1. 0. 4 版本--wm_sdk_w800_20211203. rar.
2. 换 SDK 的蓝牙库:
a. 在 lib 目录下需要把 libbtcontroller_br_edr. a 和 libbthost_br_edr. a 改为 libbtcontroller. a (替换
掉旧的库) 和 libbthost. a
b. toolsw800. config 屏蔽这行 CONFIG_W800_USE_NIMBLE---#CONFIG_W800_USE_NIMBLE=y
c. ldw800gcc_csky. ld 连接文件加大代码区---LENGTH = 0x120000 改为 0x140000
d. includewm_config. h 配置使用传统 BT 库同时支持 BLE:
#define TLS_CONFIG_BR_EDR CFG_ON
#define TLS_CONFIG_BLE CFG_ON
e. demowm_demo. h 把 DEMO_CONSOLE 宏打开 DEMO_ON, 把蓝牙 DEMO 打开 DEMO_BT 宏
#define DEMO_CONSOLE DEMO_ON
#define DEMO_BT (DEMO_ON && DEMO_CONSOLE)
f. 修改以上地方后, 先编译库---make lib, 再 make.
代码修改参考截图:
3. 生成固件后烧录测试 log 如下:
a. 复位后, 使用串口控制台指令测试发广播: 循序执行截图中的两条命令---成功后手机 nrf connectAPP 能搜索到设备
b. 复位后, 使用串口控制台指令测试 SERVER 设备: 循序执行截图中的两条命令---成功后手机 APP 能连上 SERVER 设备, 发送通讯数据.
问 是否支持 btapp 里面的 ble, 而不是 NimBLE 版