- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
如何把CC2541的连接周期改大一点?
录入:edatop.com 点击:
想把CC2541的连接周期改大一点,可是修改DEFAULT_DESIRED_MAX_CONN_INTERVAL那几个参数,怎么改都没效果,查了论坛说要增加 函数GAPRole_SendUpdateParam(),我把它放在初始化GAPRole_SetParameter后,如下:
GAPRole_SetParameter( GAPROLE_PARAM_UPDATE_ENABLE, sizeof( uint8 ), &enable_update_request );
GAPRole_SetParameter( GAPROLE_MIN_CONN_INTERVAL, sizeof( uint16 ), &desired_min_interval );
GAPRole_SetParameter( GAPROLE_MAX_CONN_INTERVAL, sizeof( uint16 ), &desired_max_interval );
GAPRole_SetParameter( GAPROLE_SLAVE_LATENCY, sizeof( uint16 ), &desired_slave_latency );
GAPRole_SetParameter( GAPROLE_TIMEOUT_MULTIPLIER, sizeof( uint16 ), &desired_conn_timeout );
GAPRole_SendUpdateParam(DEFAULT_DESIRED_MIN_CONN_INTERVAL,DEFAULT_DESIRED_MAX_CONN_INTERVAL,
DEFAULT_DESIRED_SLAVE_LATENCY,DEFAULT_DESIRED_CONN_TIMEOUT,1);
我也尝试加在状态变化回调函数里GAPROLE_CONNECTED后,也没有效果,请问各位,这个函数怎么用?
我是用IOS7.1测试的,连接周期一直是30ms,能否帮忙解答下,谢谢!
GAPRole_SetParameter( GAPROLE_PARAM_UPDATE_ENABLE, sizeof( uint8 ), &enable_update_request );
GAPRole_SetParameter( GAPROLE_MIN_CONN_INTERVAL, sizeof( uint16 ), &desired_min_interval );
GAPRole_SetParameter( GAPROLE_MAX_CONN_INTERVAL, sizeof( uint16 ), &desired_max_interval );
GAPRole_SetParameter( GAPROLE_SLAVE_LATENCY, sizeof( uint16 ), &desired_slave_latency );
GAPRole_SetParameter( GAPROLE_TIMEOUT_MULTIPLIER, sizeof( uint16 ), &desired_conn_timeout );
GAPRole_SendUpdateParam(DEFAULT_DESIRED_MIN_CONN_INTERVAL,DEFAULT_DESIRED_MAX_CONN_INTERVAL,
DEFAULT_DESIRED_SLAVE_LATENCY,DEFAULT_DESIRED_CONN_TIMEOUT,1);
我也尝试加在状态变化回调函数里GAPROLE_CONNECTED后,也没有效果,请问各位,这个函数怎么用?
我是用IOS7.1测试的,连接周期一直是30ms,能否帮忙解答下,谢谢!
// Whether to enable automatic parameter update request when a connection is formed
#define DEFAULT_ENABLE_UPDATE_REQUEST TRUE
uint8 enable_update_request = DEFAULT_ENABLE_UPDATE_REQUEST;
GAPRole_SetParameter( GAPROLE_PARAM_UPDATE_ENABLE, sizeof( uint8 ), &enable_update_request );
这样做试试,机制是 允许从机向主机发送参数更新请求,从机端接到更新请求会允许,这个方法是SimplePeripheral工程里用的,我们是用这种方法实现连接参数更改的。
设置这两个参数,实测可行。
GAP_SetParamValue( TGAP_CONN_EST_INT_MIN, 400 );//设置连接最小时间间隔 400*1.25ms=0.5s
GAP_SetParamValue( TGAP_CONN_EST_INT_MAX, 800 );//设置连接最大时间间隔 400*1.25ms=1s