点师大灯——STM32应用笔记(九)

九、不工整的EXTI

        EXTI是外部中断/事件的部件。它有20条输入线可以连接,16条GPIO线和4条。

        EXTI工作的前提有时钟,它在AFIO模块下工作,所以要开启AFIO的时钟。

        抛开GPIO外的4条输入不谈,专谈GPIO的16条输入。

先说事件,看图:

        事件是监测PIN口的电平变化,有上升和下降事件,在EXTI的EMR、RTSR、FTSR寄存器里设置。

        有趣是事件的执行:事件的接收者是CPU!CPU如果在正常运行,事件无作用。当CPU在执行WFE后睡眠,这时的事件唤醒CPU,CPU可以查询是哪根聪唤醒了自己,查询是上升还是下降行为导致唤醒,像不像CPU的自己的中断??

再说中断,看图:

        EXTI监测PIN口的电平变化,在上升和下降中断,在EXTI的IMR、RTSR、FTSR寄存器里设置。

        中断的执行中规中矩,电平的变化转化为NVIC的中断,CPU进中断函数执行。

那么问题来了,GPIO的8种工作模式,能和EXTI一起工作吗?

        输入类的浮空、上拉和下拉,肯定能和EXTI一起工作。

        输出类的普通推挽输出、开漏输出和复用推挽输出、复用开漏输出,如果和EXTI的事件一起工作,因为CPU正常工作,事件无作用。

        如果四种输出和EXTI的中断一起工作,很可能中断正常工作。这个有待上机验证。

        模拟输入和EXTI放在一起,估计EXTI没反应。这个也有待上机验证。

        这种想法有些钻牛角尖,罪过罪过。智度法师答:“追求完美”是弥补缺陷,“而爱钻牛角尖”只会越钻、缺陷越大、越不完美,因为它总是“执著”于缺陷非要挤出个牛角来、非要挤破它不可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值