I set the connection as follows:
#define MIN_CONNECTION_INTERVAL (uint16_t) MSEC_TO_UNITS(500, UNIT_1_25_MS)
#define MAX_CONNECTION_INTERVAL (uint16_t) MSEC_TO_UNITS(1000, UNIT_1_25_MS)
#define SLAVE_LATENCY 0
#define SUPERVISION_TIMEOUT (uint16_t) MSEC_TO_UNITS(4000, UNIT_10_MS)
It complys with iPhone's connection parameters. The connection interval of iPhone 5 is still 30mS. But the connection interval of Android phone (Infocus M370) can change to 1 second. Does anyone know that? How to solve it.
iPhone's connection parameters:
Interval Max * (Slave Latency + 1) ≤ 2 seconds
Interval Min ≥ 20 ms
Interval Min + 20 ms ≤ Interval Max Slave Latency ≤ 4
connSupervisionTimeout ≤ 6 seconds
Interval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout