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

2019-12-18 18:49发布

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

举例说明:
想要在A1,A2口上实现两个必须上升沿触发中断的按钮或者外设,需要共用EXT_A的中断向量.
假设有一时间发生了EXT_A中断,进入了中断服务函数.现在没有中断标志位,直接导致要用很复杂的算法才能判断到底是哪个口上发生的中断.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
41条回答
lloovve
1楼-- · 2019-12-18 20:31
用两个口啊,这个设计感觉就是为布线方便
bj-stm8
2楼-- · 2019-12-18 20:40
 精彩回答 2  元偷偷看……
fei_yang
3楼-- · 2019-12-19 00:01
呵呵 还两个口。。。搬凳子听听
sqmm
4楼-- · 2019-12-19 00:17
回复【1楼】lloovve  
-----------------------------------------------------------------------
在开发bootloader的过程中,文档推荐不要使用中断系统.
要实现一个下跳沿或者上升沿的检测,如果有中断标志位就很方便;如果没有就只能先等一个电平,然后再等下一个电平.
如果这个电平持续时间长还好,要是持续时间短到只有1us,就凭stm8 16M条件下的处理能力,基本上检测不出来.
sqmm
5楼-- · 2019-12-19 00:21
回复【2楼】bj-stm8  珍惜生命 远离天_朝
-----------------------------------------------------------------------

复杂的算法我也没有想好,先在这发发牢骚.
也希望其他人能够给我指条明路.
way2888
6楼-- · 2019-12-19 05:40
如果边缘比较平缓的话就悲剧了,我试过下降沿触发,因为变化平缓,进入中断程序里读端口居然读到还是高电平,总的来说这种没中断标志指示那就自己用的时候多留心吧

一周热门 更多>