STM8s103,IO口中断,上升沿触发,一直进入中断服务函数。

2019-07-19 20:27发布

我的程序是用的是PE.5口
  PE_DDR &= ~0x20; //PE.5   //设置为输入
  PE_CR1 |= 0x20;//上拉输入
  PE_CR2 |= 0x20; //允许中断 
  EXTI_CR2 &=~MASK_EXTI_CR2_PEIS; //MASK_EXTI_CR2_PEIS =0x03
  EXTI_CR2 |=0x01; //仅上升沿触发。
这样配置后,我把PE.5口拉低,程序就一直进入
#pragma vector=9
__interrupt void EXTI_PORTE_IRQHandler(void)
{
}
这个函数。这是为什么?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
luodanoo
1楼-- · 2019-07-20 00:11
 精彩回答 2  元偷偷看……
正点原子
2楼-- · 2019-07-20 03:08
帮顶。。。。
天荒
3楼-- · 2019-07-20 05:42
 精彩回答 2  元偷偷看……
luodanoo
4楼-- · 2019-07-20 08:54
回复【3楼】天荒:
---------------------------------
STM8S好像没有清中断标志的啊
布衣独奏
5楼-- · 2019-07-20 11:03
回复【5楼】luodanoo:
---------------------------------
我也遇到过同样的问题,最后的解决办法是在中断函数里面的清理标志位那里加入以下代码,结果就可以了!
  GPIO_Init(GPIOB, GPIO_Pin_6, GPIO_Mode_In_PU_No_IT); 
  EXTI_ClearITPendingBit(EXTI_IT_Pin6);
  GPIO_Init(GPIOB, GPIO_Pin_6, GPIO_Mode_In_PU_No_IT);
布衣独奏
6楼-- · 2019-07-20 12:58
 精彩回答 2  元偷偷看……

一周热门 更多>