STM32 外部中断 和 定时器中断
Overivew外部中断
功能
外部中断是由芯片外部引脚的电平变化(上升沿、下降沿或双边沿)触发的中断,主要用于响应外部硬件事件(如按键触发、传感器信号变化、外部设备状态改变等)。
特点
触发源:
由 GPIO 引脚的电平变化触发,每个 GPIO 引脚可通过配置映射到相应的外部中断线(EXTI)。STM32 中外部中断线数量有限(通常为 16 条),多个 GPIO 引脚可复用同一条中断线(需通过 AFIO 配置)。
响应场景:
适用于处理异步外部事件,如按键按下、传感器触发、外部设备中断请求等,实时响应外部信号变化的场景。
触发方式:
可配置为上升沿触发、下降沿触发或双边沿触发。
优先级:
支持中断优先级配置,可通过 NVIC(嵌套向量中断控制器)设置抢占优先级和子优先级,确保高优先级事件优先响应。
定时器中断
功能
定时器中断由芯片内部定时器模块触发,通过配置定时器的计数溢出、比较匹配等事件产生中断,主要用于实现定时任务、周期性操作或精确计时。
特点
触发源:
由内部定时器(如 TIM1-TIM17 等)的计数事件触发,例如计数器溢出(更新事件)、比较通道匹配、输入捕获等。定时器的时钟源可来自内部时钟(APB 总线时钟)、外部时钟或其他定时器触发信号。
响应场景:
适用于需要周期性执行的任务,如定时采样数据、刷新显示、产生 PWM 信号、延时控制等,依赖精确时间间隔的场景。
定时精度:
定时精度高,可通过配置定时器的预分频系数和自动重装载值,实现从微秒级到秒级的精确定时(例如:定时时间 = (预分频值 + 1) × (自动重装载值 + 1) / 定时器时钟频率)。
灵活性:
支持多种工作模式(向上计数、向下计数、中心对齐计数),可配合比较输出、输入捕获等功能实现复杂时序控制,如电机调速、频率测量等。
资源特性:
每个定时器独立工作,可同时运行多个定时器中断,互不干扰;中断优先级同样通过 NVIC 配置,便于管理多个定时任务的执行顺序。
核心区别与应用场景
data:image/png;base64,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***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**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
程序设计
外部中断
我用的是STM32 F103的芯片,它的外部中断引脚映射(将 GPIO 引脚连接到 EXTI 线)由 AFIO(辅助功能 IO)外设控制,具体通过GPIO_EXTILineConfig()函数配置 SYSCFG_EXTICR 寄存器实现。所以需要使能AFIO时钟。
GPIO_EXTILineConfig()是 F1 系列的函数,而 STM32F4 系列已将引脚映射功能整合到 SYSCFG 外设中,对应函数为SYSCFG_EXTILineConfig(),且需要使能 SYSCFG 时钟(RCC_APB2Periph_SYSCFG)。
外部输入引脚的配置
开启GPIOD和AFIO时钟(我用的是PD0引脚)
设置PD0为下拉输入(因为会配置为上升沿触发,所以默认应该为低电平)
关联PD0到外部中断线0
配置中断线0为上升沿触发
配置并使能EXTI0中断的NVIC优先级
void EXTI_PD0_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
// 使能 GPIOD 和 AFIO 时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_AFIO, ENABLE);
// 配置 PD0 为下拉输入
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; // 修改为下拉输入
GPIO_Init(GPIOD, &GPIO_InitStructure);
// 将 PD0 映射到外部中断线 0(F103使用GPIO_EXTILineConfig)
GPIO_EXTILineConfig(GPIO_PortSourceGPIOD, GPIO_PinSource0);
// 配置外部中断线 0
EXTI_InitStructure.EXTI_Line = EXTI_Line0;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
// 配置 NVIC
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
中断服务函数
简单打印一个信息即可,注意函数名必须用这个,不能用其他的。
PD0识别到有上升沿到来,就会打印这个消息
void EXTI0_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line0) != RESET)
{
// 处理中断事件,例如打印信息
printf("PD0 Rising Edge Interrupt Detected!\r\n");
// 清除中断标志位
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
触发中断
连接到3.3V触发变化
PD0接杜邦线接到3.3V去,接通的瞬间,就会触发一个上升沿,中断就被触发,打印消息。
当断开时,由于下拉电阻,电平会恢复到低电平,下一次再接通3.3V时,又会触发上升沿
通过按键控制输入
我们可以设置按键,按键触发另一个引脚PD1(或者其他引脚),PD1是作为GPIO输出的,使用按键来触发PD1的输出高或低电平,然后PD1也用杜邦线连接到PD0上。
按键可以参考STM32 按键输入检测 轮询和中断
按键引脚初始化代码
void KEY_Init(void) //IO初始化
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);//使能PORTA,PORTE时钟
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_4|GPIO_Pin_3;//KEY0-KEY1
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
GPIO_Init(GPIOE, &GPIO_InitStructure);//初始化GPIOE4,3
//初始化 WK_UP-->GPIOA.0 下拉输入
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; //PA0设置成输入,默认下拉
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA.0
}
按键扫描代码
void Key_task()
{
vu8 key=0;
printf("Key_task start\r\n");
while(1)
{
key=KEY_Scan(0); //得到键值
if(key)
{
switch(key)
{
case WKUP_PRES: //控制蜂鸣器
printf("Task 2 WKUP_PRES\r\n");
break;
case KEY1_PRES:
printf("Task 2 KEY1_PRES\r\n");
break;
case KEY0_PRES:
printf("Task 2 KEY0_PRES\r\n");
break;
}
}
else
{
delay_ms(10);
}
}
}
按键触发PD1引脚的输出,从而影响PD0输入值
按下KEY1,PD1输出高电平,PD0就会输入高电平
按下KEY0,PD1输出低电平,PD0就会输入低电平
void Key_task(void *pvParameters)
{
vu8 key=0;
printf("Key_task start\r\n");
while(1)
{
key=KEY_Scan(0); //得到键值
if(key)
{
switch(key)
{
case WKUP_PRES: //控制蜂鸣器
BEEP=!BEEP;
break;
case KEY1_PRES:
printf("Task 2 KEY1_PRES\r\n");
GPIO_SetBits(GPIOD, GPIO_Pin_1);
break;
case KEY0_PRES:
printf("Task 2 KEY0_PRES\r\n");
GPIO_ResetBits(GPIOD, GPIO_Pin_1);
break;
}
}
else
{
delay_ms(10);
}
}
}
定时器中断
定时器初始化函数
配置定时器时基参数
TIM_Prescaler = 7200 - 1:预分频器设置为 7199,将定时器时钟(72MHz)分频为 72MHz / 7200 = 10kHz(即计数频率为 10kHz,每计数 1 次耗时 0.1ms)。
TIM_Period = 10000 - 1:自动重载值为 9999,计数器从 0 计数到 9999 后溢出(产生更新事件),耗时 10000 × 0.1ms = 1000ms = 1秒。
TIM_CounterMode = TIM_CounterMode_Up:向上计数模式(从 0 到重载值循环)。
TIM_ITConfig使能 TIM2 的更新中断(计数器溢出时触发中断)。
void TIM_Configuration(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
// 使能定时器时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
// 假设系统时钟频率为 72MHz,APB1 时钟频率为 36MHz,定时器时钟频率为 72MHz
// 配置定时器 1 秒定时
TIM_TimeBaseStructure.TIM_Period = 10000 - 1; // 自动重载值
TIM_TimeBaseStructure.TIM_Prescaler = 7200 - 1; // 预分频器值,72MHz / 7200 = 10kHz
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
// 使能定时器中断
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);
// 配置 NVIC
NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x03;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
// 使能定时器
TIM_Cmd(TIM2, ENABLE);
}
中断服务函数
每次定时器时间到,触发中断服务函数,打印信息
// 定时器 2 中断服务函数
void TIM2_IRQHandler(void)
{
if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)
{
printf("TIM2_IRQHandler() \r\n");
// 清除定时器中断标志
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
}
}
————————————————
版权声明:本文为CSDN博主「扣篮发型不乱」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/KawhiLeo/article/details/149784771
页:
[1]