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

2019-12-18 18:49发布

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

举例说明:
想要在A1,A2口上实现两个必须上升沿触发中断的按钮或者外设,需要共用EXT_A的中断向量.
假设有一时间发生了EXT_A中断,进入了中断服务函数.现在没有中断标志位,直接导致要用很复杂的算法才能判断到底是哪个口上发生的中断.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
41条回答
graycker
1楼-- · 2019-12-20 01:09
正在纠结这问题
linghu2
2楼-- · 2019-12-20 02:54
回复【8楼】sqmm  

我要检测多路us级的脉冲
-----------------------------------------------------------------------

就不要用STM8S了,慢
huanggua
3楼-- · 2019-12-20 08:33
检测多路us级的脉冲?  STM8S ?

夸张了吧
122402902
4楼-- · 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有中断使能
不能共用?    你可以在中断中判断。。。
asunder_love
5楼-- · 2019-12-20 16:49
 精彩回答 2  元偷偷看……
zike310
6楼-- · 2019-12-20 22:11
sqmm 发表于 2011-3-4 13:33
回复【7楼】hongh  
-----------------------------------------------------------------------

怎么会花这么多时间,是你代码的问题吧。我就没发现需要那么长时间。

一周热门 更多>