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

2019-12-18 18:49发布

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

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

我要检测多路us级的脉冲,可是stm8 进个中断就花掉50us.
现在看来,用GPIO检测一个信号出来都困难,更不用说同时检测多个了.
试试定时器的捕获功能能不能管用.
fei_yang
3楼-- · 2019-12-19 10:09
回复【8楼】sqmm
-----------------------------------------------------------------------

定时器的捕捉挺好的 测脉宽
superwilkes
4楼-- · 2019-12-19 10:39
请问sqmm,你说的开发bootloader不推荐使用中断是从哪里看到的呢?有相关文档吗?你说的bootloader是不是指自己写的引导程序?
sqmm
5楼-- · 2019-12-19 16:31
回复【10楼】superwilkes  
-----------------------------------------------------------------------

AVR的Aplication Note里面依稀记得这么说过.它觉得需要改变中断向量表,会增加复杂度,影响稳定性.
而且从我接触的AVR和STM8来看,里面关于Bootloader的示例,没有一个用中断的.
way2888
6楼-- · 2019-12-19 22:17
 精彩回答 2  元偷偷看……

一周热门 更多>