1.这个是 f4/f7/h7 用于配置外部中断的寄存器
需要先使能时钟
2.这个是f1用于配置外部中断的配置器,也是需要先配置时钟,但是区别在于除了f1 ,别的系列都用的SYSCFG
3.这个是外部中断线io和怎么exti对应的
4.这两张图 都是exti和io的对应关系,f1到f7系列的都有
5.这个是外部中断的使用步骤,说白了就是gpio要配,exti要配,nvic和中断服务函数要写
6.
7.
说白了 就是gpio要配,exti要配,nvic要配,然后以前标准库是在exti-irqhander里面写逻辑,现在就是在exti-irqhander里面调用hal-gpio-exti-irqhandler这个回调函数里面再调用hal-gpio-exti-callback这个函数里面写逻辑
注意(其实也可以就直接在hal-gpio-exti-irqhandler这个函数里面写逻辑处理了,不需要再在hal-gpio-exti-callback这个回调函数里面写逻辑,但是一般都是在hal-gpio-exti-callback这个函数里面写最终的逻辑处理)
注意:先看你是gpioa还是gpiob还是什么,先初始化gpio的时钟,然后才是外部中断线的对应,pa0-pe0(或者pm0)这样更多,都是一次只能有一根线对应到外部中断线exti0的,所以不会有重复的情况,然后就是nvic的初始化,最后就只有中断服务函数中写逻辑了。
这个是标准库的写法,也是先写gpio配置,再写exti配置,再写nvic的配置,同样的,也是需要先初始化gpioa或者任意一个gpio口,以得到gpio范围,然后再在这个gpio口的范围里面再选是哪个exti线,px0就对应exti0,px1就对应exti1,依次类推,然后就是在中断服务函数里面写具体逻辑了。