关于keil C语言内联汇编不能达到预期目的的问题

2019-07-14 18:42发布

本人在学习STM睡眠模式时,使用__WFI()  这句能达到进入睡眠模式后,任意中断能唤醒并接着执行下面的程序,但是使用原子例程中的__asm void WFI_SET(void){
   WFI;                  
}
这个函数,能进入睡眠模式,但是当任意中断触发时,只能进入中断处理中断服务程序中的内容,不能接着执行主程序下面的程序。
求大神解答,两种方式为何会出现这种差别?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
南山南北海北
1楼-- · 2019-07-15 13:54
小青蛙 发表于 2018-6-15 17:24
看上去两个的确是等价的,  你在原子哥的 案例中有看到 调用 WFI_SET(); 的么?
难道真如是说是编译环境造成的?
还有以前 汇编下的 “WFI;”  和  __wfi 等价么

是的,是在原子例程里面的,我对汇编不是太熟,我估计就是你后面说的这两种原因的一种了

一周热门 更多>