STM8L 外部中断解析
本帖最后由 zerozk 于 2015-3-26 16:33 编辑最近公司一个案子需要用到超低功耗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板还未回来,所以无法验证,如有错误还望大神们提出。
thanks!
学习了啊 学习一下 不同于其它8位单片机,所有IO口都可以用来设置为中断见RM0016 STM8S参考手册84页 RM0031 STM8L参考手册116页,英文不好的话参考RM0016 STM8S参考手册84页。 楼主的总解是对的
页:
[1]