蓝牙任务中,有一个软件定时器,20ms定时执行函数A。
请问A占用CPU的时间是否不宜过长,否则蓝牙连上后 很容易断开,然后再也搜索不到?
A占用CPU的时间多长合适, 如果A占用CPU的时间无法减小,请问怎样解决这个问题呢?
Viki Shi:
这个时间跟你自己设置的连接参数相关,参考这边类似问题:e2echina.ti.com/…/161765
user1388075:
回复 Viki Shi:
问题是,断后,就扫描不到了……
user1388075:
回复 Viki Shi:
他这个是中断
我的是蓝牙任务中的软件定时器,定时事件中的函数执行时间偏长。
Viki Shi:
回复 user1388075:
断开后搜索不到,该设备断开后有在广播吗?
user1388075:
回复 Viki Shi:
程序中是有的。
顺便问下怎样获取bios系统的系统计数器值 类似GetTickCount 这种
Viki Shi:
回复 user1388075:
程序中有不代表真的在广播,用其他工具【比如BLE scanner】看看能不能搜到
Timer_getCount()
user1388075:
回复 Viki Shi:
那就是没有了,因为手机app搜不到蓝牙设备了。
蓝牙任务中的周期性执行函数所占用CPU的时间最大为多少。
Viki Shi:
回复 user1388075:
上面已说明,跟你的连接参数设置有关,不能超过你设置的值Connection interval,Slave latency,Supervisor timeout自己去估算下
user1388075:
回复 Viki Shi:
如果超过,就会造成手机搜不到该蓝牙设备的情况是吧
user1388075:
回复 Viki Shi:
这是我参数:
// Fast advertising interval in 625us units.
#define DEFAULT_FAST_ADV_INTERVAL32// Duration of fast advertising duration in ms.
#define DEFAULT_FAST_ADV_DURATION30000// Slow advertising interval in 625us units.
#define DEFAULT_SLOW_ADV_INTERVAL1600// Slow advertising duration in ms (set to 0 for continuous advertising).
#define DEFAULT_SLOW_ADV_DURATION0// How often to perform heart rate periodic event.
#define DEFAULT_HEARTRATE_PERIOD20//8//8//MS// Whether to enable automatic parameter update request when a connection is
// formed.
#define DEFAULT_ENABLE_UPDATE_REQUESTGAPROLE_LINK_PARAM_UPDATE_WAIT_BOTH_PARAMS// Minimum connection interval (units of 1.25ms) if automatic parameter update
// request is enabled.
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL200// Maximum connection interval (units of 1.25ms) if automatic parameter update
// request is enabled.
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL1600// Slave latency to use if automatic parameter update request is enabled.
#define DEFAULT_DESIRED_SLAVE_LATENCY1// Supervision timeout value (units of 10ms) if automatic parameter update
// request is enabled.
#define DEFAULT_DESIRED_CONN_TIMEOUT1000// Battery level is critical when it is less than this %
#define DEFAULT_BATT_CRITICAL_LEVEL6