OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5617|回复: 1

当我触发了触摸屏中断后,滴答定时器延时自动退出,不明白是为什么

[复制链接]

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2248
金钱
2248
注册时间
2019-8-7
在线时间
364 小时
发表于 2021-5-8 17:34:31 | 显示全部楼层 |阅读模式
10金钱
每当我按下触摸屏的时候,我滴答定时器的延时会自动结束,感觉好奇怪,不知道有没有大佬知道原因的怎么解决它。
代码:
void delay_xms(u16 nms)
{                 
    u32 temp;         
    SysTick->LOAD=(u32)nms*fac_ms;          //时间加载(SysTick->LOAD为24bit)
    SysTick->VAL =0x00;                     //清空计数器
    SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;                    //开始倒数  
    do
    {
        temp=SysTick->CTRL;
    }while((temp&0x01)&&!(temp&(1<<16)));   //等待时间到达   
    SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;//关闭计数器
    SysTick->VAL =0X00;                     //清空计数器         
}
触摸屏中断:
void EXTI9_5_IRQHandler(void)
{
    u8 value;
    if(EXTI_GetITStatus(EXTI_Line5)!=RESET)
    {
        AutoOFF_Time=0;
        value=LightDark_Control(BackLightCountrol_CLOSE);
        if(value==1)//当屏幕熄灭时触发 防止误触
        {
            while(1)
            {
                GT911_Scan();
                if(!(tp_dev.sta&TP_PRES_DOWN))break;
                IWDG_Feed();        //看门狗
            }
        }
        GT911_Scan();//按键扫描函数
        BEEP_FeedBack();
        EXTI_ClearITPendingBit(EXTI_Line5);//清除中断标志位
    }
}




正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

13

主题

644

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1976
金钱
1976
注册时间
2021-4-16
在线时间
505 小时
发表于 2021-5-8 17:54:52 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 23:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表