STM32开关总中断

本文介绍了在STM32开发中,如何使用CMSIS库中的__set_FAULTMASK和__set_PRIMASK函数来规范地管理中断,区别于简单的__disable_irq,它能阻止CPU响应中断但不阻止中断触发。
摘要由CSDN通过智能技术生成

STM32开关总中断

https://www.cnblogs.com/jieruishu/p/6396225.html

其实最正规的做法是用CMSIS库里面的(跨平台)
void __set_FAULTMASK(uint32_t faultMask);
void __set_PRIMASK(uint32_t priMask);

__disable_irq()只是禁止CPU去响应中断,没有真正的去屏蔽中断的触发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32中,关闭和开启中断的函数是通过操作相关的寄存器来实现的。要关闭中断,可以使用函数`__disable_irq()`。这个函数会禁用所有中断,包括外部中断和内部中断。要开启中断,可以使用函数`__enable_irq()`。这个函数会重新启用所有中断。需要注意的是,在关闭中断期间,任何触发中断的事件都不会引起中断服务函数的执行。而在开启中断之后,如果有中断事件发生,中断服务函数会被执行。在配置STM32中断时,还需要注意关闭和开启NVIC中断通道和EXTI中断通道。NVIC中断通道是用来管理中断优先级的,可以使用相关的寄存器进行配置。EXTI中断通道是用来管理外部中断的,可以通过配置相关的寄存器来设置外部中断的触发方式和优先级。在编写中断服务函数时,需要使用事先定义好的函数名。在STM32中,IO口外部中断函数一共有7个,可以根据需要选择合适的函数进行编写。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [STM32如何关闭,开启中断](https://blog.csdn.net/qq_41245148/article/details/107787776)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [STM32外部中断](https://blog.csdn.net/m0_62005595/article/details/128071557)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值