Hi All
I am right now working with nRf52840DK on Segger Embedded Studio (S140 SoftDevice), and I am trying to read my BLE channel map by function
sd_ble_opt_get(), but I did not get the expected result.
Basically, my code is like this:
int main(void) { bool erase_bonds; // Initialize. log_init(); timer_init(); power_management_init(); buttons_leds_init(&erase_bonds); ble_stack_init(); gatt_init(); peer_manager_init(); db_discovery_init(); hrs_c_init(); bas_c_init(); scan_init(); ble_opt_t opt; memset(&opt,0,sizeof(opt)); // Start execution. NRF_LOG_INFO("Heart Rate collector example started."); scanning_start(&erase_bonds); // Enter main loop. for (;;) { idle_state_handle(); uint32_t error_code = sd_ble_opt_get(BLE_GAP_OPT_CH_MAP, &opt); printf("error_code =%x, ChMap %02X %02X %02X %02X %02X\r\n",error_code, opt.gap_opt.ch_map.ch_map[0], opt.gap_opt.ch_map.ch_map[1], opt.gap_opt.ch_map.ch_map[2], opt.gap_opt.ch_map.ch_map[3], opt.gap_opt.ch_map.ch_map[4]); // nrf_delay_ms(500); } }
The printf output from the code is:
error_code =3002, ChMap 00 00 00 00 00
If anyone knows why I got all "0" as my channel map reading output? And how could I make it right?