微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541BLE协议栈,在建立连接之后还有30ms左右的心跳

CC2541BLE协议栈,在建立连接之后还有30ms左右的心跳

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

最近抓包发现,用CC2541做从机,连接手机之后,在连接建立之后主从双方还在不停的进行数据交互,这个发送频率蛮高的,大概有30ms左右的时间,这样的话,功耗会很高,请问修改什么地方可以修改这个发送频率,以达到降低功耗的目的。

shanyi he,

你可以通过请求主机修改connection interval来实现这个功能。

把这两个改成你想要的时间:

// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 80

// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 800

然后把DEFAULT_ENABLE_UPDATE_REQUEST 设置成TRUE

谢谢,之前也有猜猜是这两个参数,但是就是不明白最小和最大之间经过怎样处理和选择,来实现了30ms左右的间隔,它们的值都远远大于30ms了~

你好,

你使用的IOS系统吗?

IOS系统最小默认的心跳包就是30ms,你可以根据情况,往大的间隔改,而不能往小的间隔改。

如何修改参考:

// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL 80

// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL 800

然后把DEFAULT_ENABLE_UPDATE_REQUEST 设置成TRUE

你好,

      谢谢你帮助, 我用的是TI发布到AppStore里的BLE工具,叫LightBlue的一个App。另外好像iOS不允许修改这个心跳间隔吧,如果我直接通过修改从机的最小间隔,好像也理解不通,你看现在最小已经是80*1.25=100ms了,它都远远大于30ms了,所以还是不知道其中是一个什么样的机制。

lightblue不是ti的app,连接参数不能从iOS端调整,要在2541端修改,参数需要符合iOS要求的规则,用packet sniffer可以看到iOS是否接受。

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

网站地图

Top