1. 程式人生 > >nrf52 SDK15.2 主從一體+一對多 + nus_c透傳

nrf52 SDK15.2 主從一體+一對多 + nus_c透傳

1、選擇工程\examples\ble_central_and_peripheral\experimental\ble_app_hrs_rscs_relay\pca10040\s132\arm5_no_packs,其本身就是主從一體的一個工程,然後實現一對多的功能,本工程預設可以一對二,即同時連線兩個從機。現在我想讓它連4臺從機,要怎麼做呢?更改以下幾個巨集唄

// <o> NRF_SDH_BLE_PERIPHERAL_LINK_COUNT - Maximum number of peripheral links. 
#ifndef NRF_SDH_BLE_PERIPHERAL_LINK_COUNT
#define NRF_SDH_BLE_PERIPHERAL_LINK_COUNT 1
#endif

// <o> NRF_SDH_BLE_CENTRAL_LINK_COUNT - Maximum number of central links. 
#ifndef NRF_SDH_BLE_CENTRAL_LINK_COUNT
#define NRF_SDH_BLE_CENTRAL_LINK_COUNT 2
#endif

// <o> NRF_SDH_BLE_TOTAL_LINK_COUNT - Total link count. 
// <i> Maximum number of total concurrent connections using the default configuration.

#ifndef NRF_SDH_BLE_TOTAL_LINK_COUNT
#define NRF_SDH_BLE_TOTAL_LINK_COUNT 3

將NRF_SDH_BLE_CENTRAL_LINK_COUNT 改成4,NRF_SDH_BLE_TOTAL_LINK_COUNT改成5;然後編譯,沒問題,但是一執行

啊噢!出錯了!!

DEBUG提示NRF_ERROR_NO_MEM錯誤,RAM空間不夠,如是修改IRAM1,將其從0x20002D58,改成0x200036F8,再編譯通過,執行,測試,可以一對四連線了。

2、在此工程新增ble_nus_c服務,將其它hrs,rscs服務都 刪除了,0x200038F8

對照工程nRF5_SDK_15.2.0_9412b96\examples\ble_central\ble_app_uart_c\pca10040\s132\arm5_no_packs來新增此服務

新增完成,編譯沒錯誤,執行,DEBUG提示Fatal erro了,自動復位了。莫子鬼......又蛋疼了......,不知道哪裡出了問題

最後找到是這個巨集NRF_SDH_BLE_VS_UUID_COUNT 0的問題,將其改為2或其它,就可以了,於是再編譯執行

DEBUG提示又NRF_ERROR_NO_MEM錯誤了,RAM空間不夠,如是再修改IRAM1,將其從0x200036F8,改成0x20003718,再編譯通過,執行,測試,耶!OK了,呵呵!建議這個值再改大點,免得再DEBUG報錯。

於是到這裡,功能新增就完成了!這過程真是一件無語的事.......

繼續新增BLE_NUS功能.......