68个中断源,这个是F1系列最多的中断数量,对于一个具体的型号,可能没有这么多中断,所以这个数量看看就行,具体以对应型号的数据手册为准。接着STM32的中断包含EXTI外部中断,TIM定时器,ADC模数转换器,USART串口,SPI通信,I2C通信,RTC实时时钟等多个外设
1.NVIC中断控制器
STM32的中断非常多,如果把这些中断全都接到CPU上,那CPU还得引出很多线进行适配,设计上就很麻烦,并且如果很多中断同时申请,或者中断很多产生了拥堵,CPU也会很难处理,毕竟CPU主要是用来运算的,所以中断分配的任务就放在别的地方,NVIC就出现了
NVIC:嵌套中断向量控制器,在STM32中用来统一分配中断优先级和管理中断的,NVIC是一个内核外设,是CPU的小助手
2.EXTI外部中断
EXTI简单来说就是引脚电平变化,申请中断
中断响应是正常的流程,引脚电平变化触发中断
事件响应不会触发中断,而是触发别的外设操作,属于外设之间的联合工作
3.需要用到外部中断的硬件模块
什么样的设备需要用到外部中断呢?使用外部中断有什么好处呢?
使用外部中断的模块特性:对于STM32来说,想要获取的信息是外部驱动的很快的突发信号,比如旋转编码器的输出信号,我可能很久都不会拧它,这时不需要STM32做任何事,但是我一拧它,就会有很多脉冲波形需要STM32接收,这个信号是突发的,STM32不知道什么时候会来,同事它是外部驱动的,STM32只能被动读取,最后这个信号非常快,STM32稍微晚一点来读取,就会错过很多波形,所以对于这种情况来说,就可以考虑使用STM32的外部中断了,有脉冲过来,STM32立即进入中断函数处理,没有脉冲的时候,STM32就专心做其它事情。