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

2019-12-18 18:49发布

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

举例说明:
想要在A1,A2口上实现两个必须上升沿触发中断的按钮或者外设,需要共用EXT_A的中断向量.
假设有一时间发生了EXT_A中断,进入了中断服务函数.现在没有中断标志位,直接导致要用很复杂的算法才能判断到底是哪个口上发生的中断.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
41条回答
HDying
1楼-- · 2019-12-22 22:46
hongh 发表于 2011-3-4 12:33
回复【5楼】sqmm  
回复【2楼】bj-stm8  珍惜生命 远离天_朝
------------------------------------------- ...

请问进入中断服务程序怎么出来啊?
pazulin
2楼-- · 2019-12-23 02:37
 精彩回答 2  元偷偷看……
wei556675
3楼-- · 2019-12-23 03:24
恩 。刚好用到
闷鱼
4楼-- · 2019-12-23 04:52
way2888 发表于 2011-3-4 12:31
如果边缘比较平缓的话就悲剧了,我试过下降沿触发,因为变化平缓,进入中断程序里读端口居然读到还是高电平 ...

贫僧 也是 施主你 怎么解决的
health
5楼-- · 2019-12-23 09:40
楼主不要骂了,他们已经知道错了。
有问题的是STM8S,在STM8L中已经改正了这个问题,具有了中断标志。
funv
6楼-- · 2019-12-23 11:47
这样行否?
-------------------------
F0 = P_IR_RX_temp;                                //Save Last sample status
P_IR_RX_temp = P_IR_RX;                        //Read current status
if(F0 && !P_IR_RX_temp)                                //Last 采样为 1,and 当前采样为 0, 得到下降沿
{...}

一周热门 更多>