STM8L103FP的外部中断 EXTIB 为什么会不停的执行中断程序?求高人指点

2019-07-19 21:12发布

EXTIB中断B0-7任意一个端口接地,然后断开地,程序进入中断,但为什么还是会不停的执行中断函数EXTIB_IRQHandler()?第一次接触STM8L,求高人指点
//-----下降沿中断------
 EXTI_CR1=0xFF; // Port 3-0 0x00: Falling edge and low level 0x55: Rising edge only 0xAA: Falling edge only 0xFF: Rising and falling edge
 EXTI_CR2=0xFF; // Port 7-4 0x00: Falling edge and low level 0x55: Rising edge only 0xAA: Falling edge only 0xFF: Rising and falling edge
 EXTI_CR3=0x0F; // port B D 0x00: Falling edge and low level 0x05: Rising edge only 0x0A: Falling edge only 0x0F: Rising and falling edge  EXTI_SR1=0x00; // 清Portx 中断
 EXTI_SR2=0x00; // 清PortB D 中断
 EXTI_CONF=0x07; //PD0 PB0-7 选择 EXTID EXTIB 中断
 
//------------Port def-------------------
 A_DDR = 0x0D; // PA023输出,PA1输入
 A_CR1 = 0x0F; // 上拉输入
 A_CR2 = 0x00; // External interrupt disabled
 A_ODR = 0x0C; // PA2-3 H  PA0 L
 
PB_DDR = 0x00; // PB0-7输入
 B_CR1 = 0xFF; // 0xFF 上拉输入
 B_CR2 = 0xFF; // PB0-7 开中断External interrupt enabled

//------------中断函数--------------------------------
@far @interrupt void EXTIB_IRQHandler(void){ //
    //EXTI_SR1=0x00; // 清Portx 中断  好像不起作用
    EXTI_SR2=0x00; // 清PortB D 中断  好像不起作用
    A_ODR = PA_ODR ^ 0x01; // 示波器接PA0 可以查看中断状态  发现不停的执行
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。