首先,端口的八个GPIO共用一个中断向量.
每个GPIO能够独立配置上升下降作为中断触发条件.
但是这个功能实际上没有太大用处,因为STM8的GPIO中断居然只有中断使能位,没有中断标志位!
举例说明:
想要在A1,A2口上实现两个必须上升沿触发中断的按钮或者外设,需要共用EXT_A的中断向量.
假设有一时间发生了EXT_A中断,进入了中断服务函数.现在没有中断标志位,直接导致要用很复杂的算法才能判断到底是哪个口上发生的中断.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
-----------------------------------------------------------------------
因为STM8的GPIO中断居然只有中断使能位,
CR2 C2[7:0]控制寄存器位
相应的位通过软件置1或置0,用来在输入或输出模式下选择不同的功能。在输入模式下,由
CR2相应的位使能中断。如果该引脚无中断功能,则对该引脚无影响。
在输出模式下,置位将提高IO速度。此功能适用O3和O4输出类型。(参见引脚描述表)
在 输入模式时(DDR=0):
位7:0
0: 禁止外部中断
1: 使能外部中断
不论引脚是输入还是输出模式,都可以通过该寄存器读入引脚状态值。该寄存器为只读寄存
器。
看这两个地方你可以试试...
没有中断使能? CR2有中断使能
不能共用? 你可以在中断中判断。。。
一周热门 更多>