This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRF52832 adv with 37 channel use SDK15.0

hello,

Now i want to adv only with 37 channel, i want to use SDK15.0.

i add m_adv_params.channel_mask[x] in advertising_init() as:

static void advertising_init(void)
{
uint32_t err_code;
ble_advdata_t advdata;
uint8_t flags = BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED;

ble_advdata_manuf_data_t manuf_specific_data;

manuf_specific_data.company_identifier = 0X00DD;


manuf_specific_data.data.p_data = (uint8_t *) m_beacon_info;
manuf_specific_data.data.size = APP_BEACON_INFO_LENGTH;

// Build and set advertising data.
memset(&advdata, 0, sizeof(advdata));

advdata.name_type = BLE_ADVDATA_NO_NAME;
advdata.flags = flags;
advdata.p_manuf_specific_data = &manuf_specific_data;



m_adv_params.channel_mask[0] = 0x00;
m_adv_params.channel_mask[1] = 0x00;
m_adv_params.channel_mask[2] = 0x00;
m_adv_params.channel_mask[3] = 0x00;
m_adv_params.channel_mask[4] = 0xC0; //USE 37 CHANNEL;

// Initialize advertising parameters (used when starting advertising).
memset(&m_adv_params, 0, sizeof(m_adv_params));

m_adv_params.properties.type = BLE_GAP_ADV_TYPE_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED;
m_adv_params.p_peer_addr = NULL; // Undirected advertisement.
m_adv_params.filter_policy = BLE_GAP_ADV_FP_ANY;
m_adv_params.interval = NON_CONNECTABLE_ADV_INTERVAL;
m_adv_params.duration = 0; // Never time out.

err_code = ble_advdata_encode(&advdata, m_adv_data.adv_data.p_data, &m_adv_data.adv_data.len);
APP_ERROR_CHECK(err_code);

err_code = sd_ble_gap_adv_set_configure(&m_adv_handle, &m_adv_data, &m_adv_params);
APP_ERROR_CHECK(err_code);
}

But it cann't works.

Wait for your reply.Thanks.

LIU

Parents Reply Children
No Data
Related