stm8的中断学习1

1,硬件中断的管理:


    (1),不同于51,所有的I/O口都可作为外部中断,每个端口都有独立的中断向量和独立标志,但是并不是说每个引脚都有独立的中断向量。


      stm8的中断学习1_第1张图片


也就是说,8个引脚一个端口,共用一个中断向量,一个引脚的端口是否可以外部中断,还需要进一步确认。在相应的GPIO端口引脚,设置输入输出模式并且触发方式

如上升沿,下降沿等触发方式,这样就可以和非外部中断引脚区别开。


       中断的映射表

stm8的中断学习1_第2张图片


(2)外部中断控制寄存器   

                                                                             外部中断控制寄存器1(EXTI_CR1)



                                                                             外部中断控制寄存器2(EXTI_CR2)


                                                                                      

                                                                                 硬件外部中断的触发方式

stm8的中断学习1_第3张图片


2,软件优先级设置


stm8的中断学习1_第4张图片


中断优先级为0-2级,3级优先级软件不能用,


                                                                           软件优先级寄存器(ITC_SPRX)  

stm8的中断学习1_第5张图片

      

  ITC_SPRx有8个寄存器,从ITC_SPR1到ITC_SPR8,ITC_SPR1最低0、1两位是设置TLI中断优先级,2、3两位是设置中断向量1优先级,ITC_SPR2最低0、1两位设置中断向量4优先级,依次类推。

     我们可以看到共有29个中断向量号,对应的stm中断


stm8的中断学习1_第6张图片


stm8的中断 3步骤
(1)在stm8_interrupt_vector.c对应的中断入口的NonHandledInterrupt 改成你的中断函数名字。
(2)在stm8_interrupt_vector.c 这个文件加上extern @far @interrupt void 你的中断函数名字(void);
(3)在 main.c里面用了 @far @interrupt void 你的中断函数名字(void)

你可能感兴趣的:(stm8的中断学习1)