完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
主程序while如下:
int main(void) { . . . flag = 0; while(1) { if(flag == 1) { PRINT("enter flag == 1"); flag = 0; } } } 会有一个中断,这个中断只触发一次,当进入这个中断时,flag=1。问题就出在这之后,使用上面这种while里面,明明flag=1了,但是就是进入不了if(flag == 1)里面。但是当while里面一个延迟或者语句,当中断使flag=1时,就能够进入if(flag == 1)里面了。 while(1) { ①这里加延迟或者任意语句,nop都行 if(flag == 1) { PRINT("enter flag == 1"); flag = 0; } } 如果单独一个if,始终进不去,不知道这种事什么原因造成的? |
|
相关推荐
1个回答
|
|
|
在定义flag这个变量的时候是否添加了关键字volatile呢。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
326 浏览 0 评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
848 浏览 0 评论
1452 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
3413 浏览 2 评论
2820 浏览 1 评论
安卓手机支持外接otg扩展坞 然后使用ch340+ch9329控制电脑吗
1808浏览 1评论
1459浏览 1评论
342浏览 0评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
860浏览 0评论
467浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:08 , Processed in 0.532925 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1143