STM32 中断系统
STM32 的中断系统基于 ARM Cortex-M 内核的 NVIC(嵌套向量中断控制器),支持多达 240 个中断源。
中断优先级
STM32 的中断优先级分为抢占优先级和响应优先级:
- 抢占优先级:高抢占优先级的中断可以打断低抢占优先级的中断
- 响应优先级:当抢占优先级相同时,响应优先级高的先执行
外部中断配置
// 配置 PA0 为外部中断
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
总结
理解中断系统是开发复杂嵌入式应用的基础。