硬件:stm32f106vc
操作系统:ucosii
实现功能:按键中断
现象:配置完按键、中断后,进入中断死机。
原代码如下:
void EXTI0_IRQHandler(void)//WK_UP KEY3 PA0
{
delay_ms(10);
if(KEY3==1)
{
//BEEP=!BEEP;
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
跑飞如下:
void HardFault_Handler(void)
{
/* Go to infinite loop when Hard Fault exception occurs */
while (1)
{
}
}
原因:没有在中断中加入操作系统有关语句。
修改程序如下后正常运行:
void EXTI0_IRQHandler(void)//WK_UP KEY3 PA0
{
OSIntEnter();
delay_ms(10);
if(KEY3==1) //WK_UP
{
//BEEP=!BEEP;
}
EXTI_ClearITPendingBit(EXTI_Line0);
OSIntExit();
}