STM32外部中断与定时器中断对比。

外部中断与定时器中断的基本概念

外部中断是由外部事件触发的,例如按键按下、传感器信号变化等。STM32的外部中断通过GPIO引脚实现,可以配置为上升沿、下降沿或双边沿触发。外部中断的响应速度快,适合处理实时性要求高的外部事件。

定时器中断是由内部定时器产生的,基于预分频和重装载值计算时间间隔。定时器中断适用于周期性任务,如数据采样、PWM生成等。STM32的定时器功能强大,支持多种工作模式,包括基本定时器、通用定时器和高级定时器。

外部中断与定时器中断的触发机制

外部中断的触发依赖于硬件信号,例如:

// 配置PA0为外部中断,下降沿触发
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

// 启用外部中断线0
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI0_IRQn);

定时器中断的触发由内部计数器控制,例如:

// 配置TIM2为1ms周期中断
TIM_HandleTypeDef htim2;
htim2.Instance = TIM2;
htim2.Init.Prescaler = 8399; // 84MHz / 8400 = 10kHz
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 9; // 10kHz / 10 = 1kHz (1ms)
HAL_TIM_Base_Init(&htim2);

// 启用TIM2中断
HAL_TIM_Base_Start_IT(&htim2);
HAL_NVIC_Set
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值