你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32芯片__disable_irq关闭中断后,调用__WFI()指令,CPU为什么...

[复制链接]
nbh520 提问时间:2017-7-6 11:09 /
本帖最后由 nbh520 于 2017-7-21 10:32 编辑

Cortex M0内核 ,CPU调用__disable_irq函数关闭中断后,进入睡眠模式,并且调用__WFI()函数,等待中断,结果当有外部中断进入时,CPU唤醒。

跪求大神指教这是什么原理,关闭中断后,等待中断,然后中断来了,想不明白

收藏 评论2 发布时间:2017-7-6 11:09

举报

2个回答
xmshao 回答时间:2017-7-6 14:45:44
本帖最后由 xmshao 于 2017-7-6 14:59 编辑

__disable_irq函数 只是关闭了CPU的中断响应,它相当于中断控制总开关。
此时即使产生了允许的中断请求事件,并做好了相关NVIC配置,cpu也不会去运行相关中断服务程序。

如果此时相关EXTI的中断使能及NVIC控制都是使能的,就不影响WFI的响应及唤醒。

若希望EXTI无法唤醒WFI,你可以不配置相应的NVIC。此时EXTI就没法唤醒CPU了。
nbh520 回答时间:2017-7-6 16:39:38
xmshao 发表于 2017-7-6 14:45
__disable_irq函数 只是关闭了CPU的中断响应,它相当于中断控制总开关。
此时即使产生了允许的中断请求事件 ...

明白了,也就是说STM32的EXTI中断只要正确配置后,在使用WFI指令时,__disable_irq对其没有任何影响

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版