串口中断后更改的全局变量值在其他子函数中不能立即变化
时间:10-02
整理:3721RD
点击:
请哪位大神指教一下!
我通过串口接收到数据后,保存在全局变量temp中,然后在ATT_HANDLE_VALUE_NOTI的情况下去检查它,如果为1,则将刚刚收到的lastInReport.value从串口发送出去,然后再将temp置0,但是无论串口接收频率有多快(每次中断也都能成功响应),在ATT_HANDLE_VALUE_NOTI事件中,只有100ms左右的时间以后才会检测到temp变为1,然后再发送数据,使用volatile声明,情况也是一样的,在非ble协议栈情况下不存在这个问题
supcond,
有没有试过把POWER_SAVING关闭呢?
已经关掉POWER_SAVING,情况还是一样的,在从机协议栈中,通过T1中断改写的全局变量是能立即在其他子函数中反映出来的。
曾经有两次偶然出现过能迅速反应到子函数中,时间只有几秒,但现在基本就是得等个几十甚至几百毫秒,全局变量才能得到更新,不过通过计数的方式,我确信每一次的串口中断,相应的全局变量在中断处是成功改变了的
上一篇:CC2541 TX & RX 的sample code
下一篇:cc2540实际connection interval 和 min connection interval 与 max connection interval的关系。
下一篇:cc2540实际connection interval 和 min connection interval 与 max connection interval的关系。