从SYD8811/SYD8810/SYD8801芯片的规格书上我们知道协议栈占用了Timer3这个定时器,SYD8821的协议栈占用了Timer0这个定时器!如果使用了SystemTimer的lib的话SYD8811/SYD8810的SystemTimer占用了Timer0,SYD8821占用了Timer4(也就是说SYD8811/SYD8810/SYD8801只有Timer1和Timer2,SYD8821有Timer1,Timer2,Timer3给用户任意使用).
既然协议栈占用了定时器,那就说明协议栈在某些时候会打开这些定时器用于协议栈的定时处理!在ble_init函数中关于定时器唤醒源的配置是对于芯片所有定时器的设置,如果关闭了定时器唤醒源的功能,那么蓝牙就有可能发生不可预期的错误!比如断线,比如广播超时不能够正常上报等等!所以定时器的唤醒源是不能够被关闭的!
在这里插入图片描述

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐