STM32 如何屏蔽外部中断

stm32,希望能在我想要开始的时候就开启,不想要开启的时候,就不开启。

下面的这个例子来源于互联网:

 

看你想要屏蔽哪个就使用哪个:

EXTI->IMR &= ~(EXTI_Line4); 屏蔽外部中断4
EXTI->IMR != EXTI_Line4;使能外部中断4

 

 

你会出现报错吗?如果出现报错是什么样的错误呢?

我的报错:

CLEAR_BIT(EXTI->IMR,EXTI_Line1);

stm32 error:  #134: expected a field name

 

解决方案就是:IMR 这个命名时不唯一了,你在keil 中进行搜索一下,看是否有重复的定义。

 

stackoverflow中的一个人得解决方案:

https://stackoverflow.com/questions/35650240/expected-a-field-name-error-in-keil-uvision-4-error134

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
STM32F0系列微控制器支持多种中断源和中断机制,包括外部中断外部中断允许处理器在特定事件发生时响应并执行预设的操作。对于STM32F0来说,外部中断通常通过GPIO(通用输入输出)端口触发,并且可以配置成边缘检测模式或电平检测模式。 ### STM32F0外部中断工作原理 #### 配置步骤: 1. **选择中断源**:确定哪些GPIO端口将作为中断源,并设定相应的中断标志位。 2. **设置中断模式**:可以选择上升沿、下降沿或高电平触发中断。 3. **分配中断优先级**:STM32F0支持中断向量表,每个中断都可以有独立的中断优先级。 4. **初始化中断线程**:在代码中初始化中断处理函数,例如使用NVIC(嵌入式矢量中断控制器)的`NVIC_Init()`函数。 5. **启动中断**:通过开启对应的中断使能寄存器,比如`EXTI_InitStructure.EXTI_Trigger = EXTI_TRIGGER_RISING | EXTI_TRIGGER_FALLING;`表示同时支持上升沿和下降沿触发中断。 6. **编写中断服务程序**:这是处理器在收到中断请求时执行的代码段,用于处理具体的中断操作。 #### 实现示例: 下面是一个简化的示例,演示如何配置STM32F0的外部中断: ```c #include "stm32f0xx.h" #include "stm32f0xx_exti.h" // 宏定义中断优先级和初始化结构体 #define INTERRUPT_PRIORITY_LEVEL NVIC_PRIO_LOW struct EXTI_InitTypeDef EXTI_InitStructure; void EXTI_Init(void) { // 初始化EXTI_InitStructure EXTI_InitStructure.EXTI_Line = GPIO_Pin_13; EXTI_InitStructure.EXTI_Mode = EXTI_MODE_IT_FALLING; // 下降沿触发中断 EXTI_InitStructure.EXTI_Pulse = EXTI_PPUB_DISABLE; EXTI_InitStructure.EXTI_Trigger = EXTI_TRIGGER_FALLING; // 只需关注下降沿 EXTI_InitStructure.EXTI_IRQn = EXTI15_10_IRQn; // 选择中断向量 // 初始化中断线程 EXTI_Init(&EXTI_InitStructure); } void EXTI15_10_IRQHandler() { __disable_irq(); // 禁止中断 // 执行中断处理任务 printf("External Interrupt on Pin 13 triggered!\n"); // 清除中断标志位 EXTI_ClearITPendingBit(EXTI_Line15); // 或者EXTI_LINE10等其他线号 __enable_irq(); // 允许中断 } ``` ### 相关问题: 1. **如何检测和处理特定GPIO脚下的外部中断事件?** 2. **如何配置STM32F0的外部中断触发模式,使得它在特定条件下激活中断?** 3. **在STM32F0中,如何避免误触发外部中断导致的系统不稳定情况?**
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有水杯和雨伞的工科男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值