STM8 GPIO外部中断的没有中断标志位.----是硬伤,直接想骂它的设计人员

2019-12-18 18:49发布

首先,端口的八个GPIO共用一个中断向量.
每个GPIO能够独立配置上升下降作为中断触发条件.
但是这个功能实际上没有太大用处,因为STM8的GPIO中断居然只有中断使能位,没有中断标志位!

举例说明:
想要在A1,A2口上实现两个必须上升沿触发中断的按钮或者外设,需要共用EXT_A的中断向量.
假设有一时间发生了EXT_A中断,进入了中断服务函数.现在没有中断标志位,直接导致要用很复杂的算法才能判断到底是哪个口上发生的中断.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
41条回答
122402902
2019-12-20 13:26
回复【楼主位】sqmm
-----------------------------------------------------------------------

因为STM8的GPIO中断居然只有中断使能位,

CR2  C2[7:0]控制寄存器位

                     相应的位通过软件置1或置0,用来在输入或输出模式下选择不同的功能。在输入模式下,由
                     CR2相应的位使能中断。如果该引脚无中断功能,则对该引脚无影响。

                     在输出模式下,置位将提高IO速度。此功能适用O3和O4输出类型。(参见引脚描述表)

                     在 输入模式时(DDR=0):
             位7:0
                     0: 禁止外部中断

                     1: 使能外部中断

不论引脚是输入还是输出模式,都可以通过该寄存器读入引脚状态值。该寄存器为只读寄存
                  器。

看这两个地方你可以试试...
没有中断使能? CR2有中断使能
不能共用?    你可以在中断中判断。。。

一周热门 更多>