STM8的中断优先级理解(包括软件优先级,硬件优先级,TLI中断等)

2019-07-19 20:28发布

STM8S的中断由中断控制器(ITC)控制.
STM8所有IO都支持中断,分为PA~PE 5个组,每组IO对应一个中断服务函数(也就是每组IO只有一个向量).
STM8没有专门的中断状态寄存器,所以只能通过刚进入中断就读取IDR来判断,不过在某些情况下,此种方法就不好用了,所以在设计的时候就要考虑清楚,是不是会冲突.最好把有冲突的中断放到不同的组.
STM8的外部中断采用软件优先级+硬件优先级的控制方法,来控制优先级分组.软件优先级优先于硬件优先级.
硬件优先级由向量号确定,向量号越小,优先级越高.
STM8软件优先级设置可以分为4个等级(0~3),实际上可设置的就三个等级:1~3
优先级顺序:0<1<2<3,3的优先级最高,高优先级的中断可以打断低优先级的中断
多个中断同时发生:在软件优先级相同的情况下,由硬件优先级决定谁先响应.但是硬件优先级不可打断.也就是相同软件优先级的中断,硬件优先级低的中断在执行了...此时来一个硬件优先级高的中断是不可以打断低优先级的中断的.
STM8还有个TLI外部中断,这个优先级可以打断软件优先级为3的中断,TLI的优先级不可设置.(基本就是最高级别了,除了RESET)


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
zxc2769
1楼-- · 2019-07-19 21:44
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-20 02:26
回复【2楼】zxc2769:
---------------------------------
STM8S其实优先级真的不多,就3个,加上TLI最多也就4层。
TLI这个我还没用过呢,呵呵。用应该是可以的了,看你自己需要去设计了。
zxc2769
3楼-- · 2019-07-20 02:27
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-07-20 03:57
 精彩回答 2  元偷偷看……
multisensor
5楼-- · 2019-07-20 05:37
EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC, EXTI_SENSITIVITY_FALL_ONLY);
EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY);

这两个是什么意思?请解释一下吧,刚入门stm8s
13128927795
6楼-- · 2019-07-20 10:02
注意:每组IO对应一个中断服务函数(也就是每组IO只有一个向量),若想知道具体是哪个引脚引起的,只能通过中断服务函数刚进入中断就读取IDR来判断
————————————————————————————————————————————————————————————————————

EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOC, EXTI_SENSITIVITY_FALL_ONLY); /* 将GPIOC端口设置为下降沿触发中断*/


 EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY);/* 将PD7引脚的TLI中断设置为下降沿中断;(PD7对应TIL引脚) */
一点浅见

一周热门 更多>