新手上路
- 积分
- 32
- 金钱
- 32
- 注册时间
- 2019-5-4
- 在线时间
- 13 小时
|
5金钱
写程序的时候碰到了一点问题,下面是按键中断服务函数
void EXTI0_IRQHandler(void)
{
Delay_Ms(5);
if(EXTI_GetITStatus(EXTI_Line0) != RESET)
{
gap = 500;
LCD_ClearLine(Line5); //---------①
LCD_DisplayStringLine(Line5," GAP:500"); //-----------②
EXTI_ClearITPendingBit(EXTI_Line0);
}
}
编译能够通过,在程序运行时按下开发板按键,中断程序执行之后却回不到主函数了,只有把消抖的Delay_Ms(5);注释掉,或者把①②两行注释掉程序才能正常运行,我想问一下为什么同时有消抖和LCD显示,程序就有问题了。
我的主函数是while(1)里LED灯闪烁,但是按下按键之后就不闪烁了,应该是没有回到主函数里来。
|
最佳答案
查看完整内容[请看2#楼]
1. 一般中断函数里面不要处理太多内容(你可以在中断里设置个flag,中断后改变flag,然后在主函数判断flag状态来操控LCD
2. 还是仿真看看具体情况吧
|