您的位置 首页 系统

STM8的中止体系以及外部中止详解

STM8具有最多32的中断系统,在中断的处理上类似于cortexm系列的芯片,首先是每个中断的向量都是固化在系统内部的,用户需要向相应的中断向量fl…

STM8具有最多32的中止体系,在中止的处理上类似于cortexm系列的芯片,首要是每个中止的向量都是固化在体系内部的,用户需求向相应的中止向量flash方位写入中止处理函数,其二,每个中止向量都具有可编程的优先级,共有两位优先级,两个BIT的优先级能够催化出4个优先级,详细如下

中止控制器内部有一些寄存器专门用来寄存相应的中止的中止优先级,同一起,在体系内部也有一个体系寄存器CC他的第三位和第五位别离一共当时正在处理的中止的优先级

能够这样以为,中止产生的时分,体系寄存器在碑文中止向量跳转的时分主动载入了相应的中止优先级到体系寄存器CC中.

中止的处理遵从先判别软件优先级后判别硬件优先级的形式,当几个中止一起产生的时分,体系会依据其固化的硬件优先级进行相应,

别的,STM8支撑中止嵌套,由于软件优先级就4级,最多也就软件优先级三层嵌套

对STM8的中止进行操作其实也简略

1.装备体系中止的翻开或封闭

2.装备想要运用的中止向量的软件优先级

3.翻开相应的外设中止源的中止,就能够呼应了

针关于外部中止来说,首要,STM8的每一个引脚都能支撑外部中止,但是在中止向量上,不是每一个引脚都有

独立的中止向量,而是每个端口共用一个中止向量,在端口中止向量处理函数中检查到底是哪一个引脚呈现了问题,

关于外部中止的装备,如下

能够界说中止的触发形式,电平触发,下降沿触发等,这个寄存器寄存了A B CD四个向量的中止形式

该寄存器寄存了E向量的中止

别的,外部中止中有一个特别的中止叫做TLI不行屏蔽中止,也便是PD7,他不属于D中止向量而是具有自己的TLI中止向量

运用外部中止的进程

1.依据前面的描绘装备中止向量

2.装备中止端口的触发形式

3.对相应的GPIO口挑选中止输入形式

在运用中止函数的时分需求留意,外部中止的中止函数咱们并没有一个寄存器告知咱们哪一个中止向量的哪一个引脚产生了中止

需求咱们读取端口的信息,假设是下降沿中止触发,那么中止处理函数在运转的时分,该引脚应该是电平的,检查哪一个引脚是低电平,咱们就能够知道哪一个引脚产生了中止

然后进行正确的处理

所以最好是一个端口只要一个引脚中止,这样易于判别,省去了一些读引脚的进程

详细操作请检查一下代码

#include "exti.h"void ExtiInit(void){//首要禁用中止disableInterrupts();//装备IO口为输入中止形式//D7初始化GPIOD->DDR &= ~(1<<7);//设置为输入GPIOD->CR1 =  (1<<7);GPIOD->CR2 =  (1<<7);//中止上拉输入//E3初始化GPIOE->DDR &= ~(1<<3);//设置为输入GPIOE->CR1 =  (1<<3);GPIOE->CR2 =  (1<<3);//中止上拉输入//设定中止优先级,TLI是最高的不行屏蔽中止优先级,所以不需求设置软件优先级,只//需求设置E3也便是端口E的优先级即可,中止向量号为7 对应寄存器ITC_SPR2ITC->ISPR2 &= (3<<6);//清楚中止优先级ITC->ISPR2 = (1<<6);//中止优先级01//设置中止触发形式EXTI->CR2 &= ~(1<<2);//TLI下降沿触发EXTI->CR2 &= ~(3<<0);//铲除PORTEEXTI->CR2 = (2<<0);//Porte只是下降沿触发enableInterrupts();//翻开中止}//TLI中止处理函数INTERRUPT_HANDLER(TLI_IRQHandler, 0){keyValue = KEY_VALUE1;}//PORT E中止处理函数INTERRUPT_HANDLER(EXTI_PORTE_IRQHandler, 7){//稳妥起见,这儿进行一次电平if((GPIOE->IDR&0X08) == 0)//检测是不是低电平{keyValue = KEY_VALUE2;}}

#ifndef __EXTI_H_#define __EXTI_H_#include "stm8s.h"#include "key.h"//咱们是用两个按键作为中止触发,其间,D7是TLI中止,E3是portE中止void ExtiInit(void);#endif

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/265533.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部