STM32
直播中

刘洋

10年用户 1136经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

STM8L外部中断跟普通MCU的外部中断不一致,为什么?

最近公司一个案子需要用到超低功耗MCU,在ti和ST的片子中纠结了一段时间,最后选了ST的STM8L151G2U6。

在使用外部中断的时候迷糊了,发现这个的外部中断跟普通MCU的外部中断不一致,经过半日分析整理得出一下结论,不知正确与否,望与大神们讨论。

一般MCU的外部中断可以定义到某个Port上某一固定的IO上,而STM8L的外部中断与此不同,共有有两种设定方式:

方式一:设定IO口

即将具有外部中断功能的Port的某一IO设定为外部中断的触发输入

该设置涉及到EXTI_CR1和EXTI_CR2,然后再中断函数中再去确定是哪个Port的IO发生了中断事件。

方式二:设定Port
即将Port作为外部中断的触发输入,然后再中断函数中确定是哪个IO发生了中断事件,这个带spec里面我没找到详细说明,是通过register设定得出这个结论的,涉及到EXTI_CR3,EXTI_CR4以及EXTI_CONF1,EXTI_CONF2四个register,其中CR3和CR4用于设定Port的sensitivity,CONF1和CONF2用于设定是整个Port用于中断功能还是半个Port(0-3或者4-7号IO)用于中断功能。


以上是个人对于STM8L外部中断的理解,由于打样的PCB板还未回来,所以无法验证,如有错误还望大神们提出。



回帖(1)

更多回帖

发帖
×
20
完善资料,
赚取积分