硬件:stm32f106vc
操作系统:ucosii
实现功能:按键中断
现象:配置完按键、中断后,进入中断死机。
原代码如下:
void EXTI0_IRQHandler(void)//WK_UP KEY3 PA0
{
delay_ms(10);
if(KEY3==1)
{
//BEEP=!BEEP;
}
EXTI_ClearITPendingBit(EXTI_Line0);
}
【ucosii操作系统下,exit中断跑飞】跑飞如下:
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();
}
OSIntEnter() 与 OSIntExit()
推荐阅读
- stm32|基于STM32和freeRTOS智能门锁设计方案
- 日常分享|共享充电宝方案原理,具体部件组成以及主控MUC参数
- #|ARM裸机开发(汇编LED灯实验(I.MX6UL芯片))
- STM32|STM32的四种IO输出模式
- STM32 远程升级(ISP / IAP)
- stm32|stm32f103can总线过滤器配置
- STM32CubeMX配置SDIO模式(非DMA方式)
- STM32|如何建一个STM32F030标准库工程模板
- STM32 时钟RCC相关配置参考stm32f10x_rcc.h
- STM32 NVIC