微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 串口中断后更改的全局变量值在其他子函数中不能立即变化

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

时间: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中断改写的全局变量是能立即在其他子函数中反映出来的。

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

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

网站地图

Top