stm8s外部中断

stm8s外部中断相关的寄存器除了io的几个寄存器之外,还有就是EXTI_CR1,EXTI_CR2寄存器。这里要注意,io的CR2寄存器的作用是开关中断。另外,stm8s系列外部中断没有标志位。

以PC1下降沿触发为例,配置如下:

asm("sim");//关总中断

EXTI_CR1_PCIS = 2;//仅下降沿触发

PC_DDR_DDR1 = 0;//io方向:输入

PC_CR1_C11=0;//因为DDR为0,所以CR1为0表示浮空输入模式

PC_CR2_C21 = 1;//1:使能外部中断,0:关闭外部中断

asm("rim");//开总中断

说明:EXTI_CR1_PCIS可以选择0——3,含义如下图所示:


iar中断函数写法如下:

/* Defines an interrupt handler for EXTI2 vector. */
#pragma vector=7
__interrupt void EXTI2_IRQHandler(void)
{           

}

中断函数我并没有写内容,说明一点:iar的中断向量号比stm8s参考手册的中断向量号大2,所以手册里PC的终端向量号为5,此处为7

你可能感兴趣的:(stm8)