TI中文支持网
TI专业的中文技术问题搜集分享网站

串口中断后更改的全局变量值在其他子函数中不能立即变化

请哪位大神指教一下!

  我通过串口接收到数据后,保存在全局变量temp中,然后在ATT_HANDLE_VALUE_NOTI的情况下去检查它,如果为1,则将刚刚收到的lastInReport.value从串口发送出去,然后再将temp置0,但是无论串口接收频率有多快(每次中断也都能成功响应),在ATT_HANDLE_VALUE_NOTI事件中,只有100ms左右的时间以后才会检测到temp变为1,然后再发送数据,使用volatile声明,情况也是一样的,在非ble协议栈情况下不存在这个问题

Yan:

supcond,

有没有试过把POWER_SAVING关闭呢?

supcond:

回复 Yan:

已经关掉POWER_SAVING,情况还是一样的,在从机协议栈中,通过T1中断改写的全局变量是能立即在其他子函数中反映出来的。

曾经有两次偶然出现过能迅速反应到子函数中,时间只有几秒,但现在基本就是得等个几十甚至几百毫秒,全局变量才能得到更新,不过通过计数的方式,我确信每一次的串口中断,相应的全局变量在中断处是成功改变了的

赞(0)
未经允许不得转载:TI中文支持网 » 串口中断后更改的全局变量值在其他子函数中不能立即变化
分享到: 更多 (0)