stm8l051 学习笔记1——外部中断
作者:互联网
stm8l051 学习笔记1——外部中断
描述:配置PB2为外部中断,中断函数中LED翻转。
1:myexti.c
GPIO_Init(GPIOB,GPIO_Pin_2,GPIO_Mode_In_FL_IT);
EXTI_SetPinSensitivity(EXTI_Pin_2, EXTI_Trigger_Rising);
EXTI_ClearITPendingBit(EXTI_IT_Pin2);
2:stm8l15x_it.c
INTERRUPT_HANDLER(EXTI2_IRQHandler,10)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
if(EXTI_GetITStatus(EXTI_IT_Pin2) != RESET)
{
EXTI_ClearITPendingBit(EXTI_IT_Pin2);//清标志
/*自定义函数*///↓
LED_CTRL_TIG();
/*自定义函数*///↑
}
}
问题:在外部中断初始化后,直接触发中断,然后一直卡在中断函数中。要么是中断标志没清除,要么就是反复触发中断。
解决:第一点,在配置外部中断之前要关闭总中断,即在main函数开始时加disableInterrupts();
,初始化完成之后再开启中断。 第二点,初始化外部中断时,引脚为GPIO_Mode_In_FL_IT
浮空输入中断,改为GPIO_Mode_In_PU_IT
上拉输入中断。
标签:中断,笔记,外部,Mode,Pin2,stm8l051,GPIO,EXTI 来源: https://blog.csdn.net/smell_/article/details/118304129