微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 在performPeriodicTask()里处理多长时间的事件比较合适

在performPeriodicTask()里处理多长时间的事件比较合适

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

每5ms调用一次performPeriodicTask(),在performPeriodicTask()里处理了比较多的事情,包括使用notify将数据发送出去,实验中,发现蓝牙连上后,过了一小会马上断开,然后将performPeriodicTask()中的一些长时间任务注释掉一部分,蓝牙就能正常工作。

要让蓝牙正常工作,一个任务的处理时间难道不能太长?

现在想搞清楚一个问题,当主机发起连接事件时,从机正在处理某一任务,那么从机是立马暂停该任务去响应主机,还是先处理完该任务,再去响应主机?有哪位大神知道的,请赐教

是的,我遇到过这情况,BLE协议栈是一个高效的协议栈,两种情况会引起连接中断,甚至广播停止:1.过大的软延时  2. 过长的用户任务处理时间;其实两个都是超时。

处理时间的上限值,你可以用协议栈自带的软延时替换你的用户任务去试试,ST_HAL_DELAY(125);//125约为1ms

关于你第二楼问题:我们这边也没有找到很完美的解决方法,但我们用的是获取BLE状态回调函数,设备处于广播还是连接,如果连接,那么马上停止用户不必要的任务,而去上传数据。

谢谢您的回答

上一篇:蓝牙uuid问题
下一篇:cc2540 定时器1ms

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

网站地图

Top