hal 正点原子 exti外部中断

ce3c631906904f25973813a9fb8db68d.jpg

 1.这个是 f4/f7/h7 用于配置外部中断的寄存器

需要先使能时钟fbf883698a844239bf056cccb1d0c74e.jpg

 2.这个是f1用于配置外部中断的配置器,也是需要先配置时钟,但是区别在于除了f1 ,别的系列都用的SYSCFG

77e79902077a455a8726daf02a4edd51.jpg

 3.这个是外部中断线io和怎么exti对应的

3b530270f1074e5f8817aed2833d4d1b.jpg

 08a5e636be5945f8ba58e61599fb5e6c.jpg

 4.这两张图 都是exti和io的对应关系,f1到f7系列的都有

b8e212c404e044959183dea5557fee59.jpg

 5.这个是外部中断的使用步骤,说白了就是gpio要配,exti要配,nvic和中断服务函数要写

c5120d5d02b04eb1a2fff0833aa45ca4.jpg

 6.

2f444ce77fc14e38a00f36e535503d6f.jpg

 7.be48559672a64ccfbc08b21a08f711a7.jpg

 91f24d987a2f414db9e95e0bd5c78dd9.jpg

 

 

说白了 就是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的初始化,最后就只有中断服务函数中写逻辑了。

 

029ccb85098f44f6bfa0613b3b989530.jpg

62c2a8787dc4442e8bea3ed9ab01c7f2.jpg 

这个是标准库的写法,也是先写gpio配置,再写exti配置,再写nvic的配置,同样的,也是需要先初始化gpioa或者任意一个gpio口,以得到gpio范围,然后再在这个gpio口的范围里面再选是哪个exti线,px0就对应exti0,px1就对应exti1,依次类推,然后就是在中断服务函数里面写具体逻辑了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值