嗨,
Previously we used nrf53832+sdk11+s132_2.0.1, we could change the ble_conn_params through sd_ble_gap_ppcp_set(&gap_conn_params) or ble_conn_params_change_params (&new_params),It works well
Now that we are using nrf52840+sdk15.2+s140_6.1.0, we cannot change the connection parameters in either way!
The test steps are as follows:
We use the routine ble_app_uart or ble_app_blinky
Modify these
#define MIN_CONN_INTERVAL MSEC_TO_UNITS(10, UNIT_1_25_MS)
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(20, UNIT_1_25_MS)
#define SLAVE_LATENCY 0
#define CONN_SUP_TIMEOUT MSEC_TO_UNITS(400, UNIT_10_MS)
#define FIRST_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(5000)
#define NEXT_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(30000)
#define MAX_CONN_PARAMS_UPDATE_COUNT 3
or
case BLE_GAP_EVT_CONNECTED:
...
new_params.min_conn_interval = MSEC_TO_UNITS(7.5, UNIT_1_25_MS);
new_params.max_conn_interval = MSEC_TO_UNITS(7.5, UNIT_1_25_MS);
new_params.conn_sup_timeout = 300;
new_params.slave_latency = 0;
sd_ble_gap_conn_param_update(m_conn_handle, &new_params);
...
break;
They don't work
We use
m_current_conn_params = p_ble_evt->evt.gap_evt.params.connected.conn_params;
NRF_LOG_INFO("min=%d,max=%d,timeout=%d,latency=%d\r\n", m_current_conn_params.min_conn_interval, m_current_conn_params.max_conn_interval, m_current_conn_params.conn_sup_timeout, m_current_conn_params.slave_latency);
to see the modified result at BLE_GAP_EVT_CONNECTED and BLE_GAP_EVT_CONN_PARAM_UPDATE
but it always"min=36,max=36,timeout=500,latency=0",No matter how we modify it,We need it to be smaller
Where was I wrong?Is there anything else that needs to be changed?Can you help me?
Thanks in advance.