Peripheral: nrf52832
Central: nrf52840
The communication speed after executing sd_ble_gap_conn_param_update is different in the following two cases.
case 1:
When the BLE_GAP_EVT_CONNECTED event occurs,
Call sd_ble_gap_conn_param_update to update the communication parameter to the value of B.
case 2:
When the BLE_GAP_EVT_CONNECTED event occurs,
Call sd_ble_gap_conn_param_update to update the communication parameter to the value of A.
When BLE_GATTS_EVT_WRITE event occurs after BLE communication is established,
call sd_ble_gap_conn_param_update to update the communication parameters to the value of B.
A Parameter
#define MIN_CONN_INTERVAL MSEC_TO_UNITS(50, UNIT_1_25_MS)
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(65, UNIT_1_25_MS)
#define SLAVE_LATENCY 3
#define CONN_SUP_TIMEOUT MSEC_TO_UNITS(4000, UNIT_10_MS)
B Parameter
#define MIN_CONN_INTERVAL MSEC_TO_UNITS(15, UNIT_1_25_MS)
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(15, UNIT_1_25_MS)
#define SLAVE_LATENCY 0
#define CONN_SUP_TIMEOUT MSEC_TO_UNITS(10000, UNIT_10_MS)
Expect Behavior
Case 1 and case 2 have the same communication speed.
Actual Behavior
Case 1 has a much faster communication speed.
Is sd_ble_gap_conn_param_update used incorrectly?
Both update to the value of parameter B, but I don't know the reason for the difference in speed.