EXTI和NVIC
提问在STM32中 EXTI和NVIC都是什么:
文心一言回答:
在STM32中,EXTI和NVIC都是与中断处理相关的组件。
EXTI(External Interrupt Controller)是STM32外部中断控制器。它负责处理由外部设备或事件触发中断请求,例如,当按钮被按下或者外部信号发生变化时,EXTI可以检测到这些变化并触发中断。
NVIC(Nested Vectored Interrupt Controller,嵌套向量中断控制器)是STM32中的中断控制器。它提供了灵活、高效、可扩展的中断处理机制,支持多级优先级、多向中断、嵌套向量中断等特性。NVIC控制着STM32中断向量表中的中断相关功能,包括中断优先级分组、中断优先级的配置、读中断请求标志、清除中断请求标志、使能中断、清除中断等。
EXTI和NVIC在STM32中断系统中具有不同的角色,共同保证了系统中断处理的顺利进行。
简单来说NVIC是芯片内部中断控制器,EXTI是片上外设。
整个程序设计的思路如下
在程序设计过程中有几个需要注意的点
1.关于为什么line0 对应的就是PA0的中断,
因为,在stm32f10x参考说明书中的9.2.5 外部中断/事件线路映像有说明。
2.EXTI时钟
需要注意的是,当使用EXTI外部中断功能时,必须开启AFIO时钟,
3.中断服务函数的名称
需要注意的是
中断服务函数名不能随意编写 在启动文件中startup_stm32f10x_xx.s 中断服务函数的名称已经给出
中断向量表应该与中断服务函数名 一一对应