当我用BLE蓝牙调试助手往simple profile发送数据时,程序会调用tmos_start_task在1秒后执行一个任务事件,任务事件大概有5秒钟,我将TIMEOUT设置成1000,当任务结束后,它继续执行例程打印RSSI值的任务事件。按我的理解的话,RSSI能打印了,证明还有富余的时间,不然应该是任务结束了直接就提示断开了吧。但是为啥打印了几次后提示断开,原因是0x08。
查看: 1203
回复: 4
请教为啥蓝牙在执行任务后会提示超时断开。
热门产品 :
CH397: 高集成度、低功耗USB网卡芯片
#define BLE_HCI_CONNECTION_TIMEOUT 0x08
超时断开了,可以尝试将连接间隔给到1600,同时将SlaveLatency也给大到6。或者可以将任务拆分一下,确保任务的执行时间小于连接间隔的一半。
但是我试过将TIMEOUT设置成3000,也试过同时设置SlaveLatency,它仍旧是打印一段时间RSSI值然后断开,最后打印断开的时间正是我设置的TIMEOUT时间,把我整不会了。。。而且连接间隔我看说明好像是一个范围,是不可控的吧,最大只有4s,最小1.25ms。
提供一个范围进行协商,最终建立连接肯定会协商出实际的连接间隔。
如果上述方法的参数已经给到最大了,那就拆分你的任务去进行管理。
那最大的连接间隔是4s,确保少于一半,那就是我得让我的每个任务最大不超过2s咯。这样整个流程有点难搞哦,行吧,谢谢你的回答。
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录