微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > cc2541 动态修改更新连接参数

cc2541 动态修改更新连接参数

时间:10-02 整理:3721RD 点击:

为什么  CC2541 动态修改连接参数与ios传输数据需要20S-25S后速度才会变快?与安卓s传输数据使用索尼的可以在15S-20S后速度会变快,但是使用三星,小米,华为,中兴的机型必须要断开重新连接传输的速度才会变快?

你可以在代码里面主动去update connection parameter 这样就不用等主机这边调整连接参数了

非常感谢您的回答,但是我在代码里面每次更新连接参数都有加这个代码,是否是我这样加有问题?

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(desired_min_interval,desired_max_interval,
desired_slave_latency,desired_conn_timeout,1);

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(desired_min_interval,desired_max_interval,
desired_slave_latency,desired_conn_timeout,1);

我在每次更新连接参数的时候都有加以上这段代码,是否我这样加有问题?

GAPROLE_PARAM_UPDATE_ENABLE 这个打开是在建立连接之后 就会自动申请参数更新

GAPRole_SendUpdateParam(desired_min_interval,desired_max_interval,
desired_slave_latency,desired_conn_timeout,1); 这个只要代码里面调用了,就会发送一条请求参数更新的命令

以下这些是设置连接参数,理论上如果没有修改的话,第二次就可以不用调用了

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 ); 

如果这些都写了 要看是在什么地方调用的 然后抓包看看连接参数是否更新成功了

非常感谢您的回答,这些代码设置应该没有错,因为我使用ios的是可以变换成功只是速度慢了点,但是我是使用三星S4 android系统4.4.2版本,却无法变换成功,这个是S4的抓包,麻烦帮忙看下,谢谢!

RSP是0x0000应该是成功了呢

看看你前面的参数是否是正确的?看起来intervalMin值蛮大的

 这个是我重新抓取的包,麻烦帮忙帮我在看下,非常感谢!

15的话应该是18ms左右

从参数更新来看应该是更新成功了应为回复是0x0000

但是后续的数据连接好像还是1s一次

感觉是主机这边的问题呢

哈哈,膜拜WBJ

我用iOS测试连接参数变更,连接间隔从30ms更新到400ms的话,1秒内就会更新成功。但从400ms更新到30ms的话,通常需要10-20秒才能成功,这个有办法优化吗?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top