這個宏一直獲取為0,是否表示不支持ble4.0呢?
問題中所提的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設備,發送通訊數據。
可以支持,SDK裡面有兩套藍牙協議棧,默認用的是NimBLE藍牙協議棧,只支持BLE,而另外一個藍牙協議棧支持BT和BLE,相對編譯後的固件也會大一些,可以通過宏定義選擇。兩個藍牙協議棧分別參考以下兩個文檔:
差點就要選其他芯片了。明天繼續評估這個芯片。