【发布时间】:2015-12-31 12:23:37
【问题描述】:
我的 while 循环有问题。 我以这种方式定义了一个全局标志:
bool data_read_rdy = false;
在我的中断中,这个值以这种方式从 false 变为 true
data_read_rdy = true;
我有一个函数,它等到 data_read_rdy 变为 true,然后再次将此值设置为 false 并退出。
void function(void)
{
while(!data_read_rdy);
data_read_rdy = false;
}
我的问题是,如果我一步一步调试,效果很好。但是如果让代码运行它会在这个 while 循环函数中阻塞并且永远不会退出,尽管 data_read_rdy 的值为 true。为什么会这样?
【问题讨论】:
-
你的循环是做什么的?我只能看到一个条件。
-
听起来你需要了解
volatile。
标签: loops while-loop