野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 285|回复: 3

关于stm32 退出while循环

[复制链接]
发表于 2024-7-23 11:03:46 | 显示全部楼层 |阅读模式
while(1)
                {
                LCD_SetFont(&Font24x32);
                       
                LCD_SetColors(CL_WHITE,CL_WHITE);
                ILI9341_DrawRectangle(0,67,96,32,1);

                delay_ms(1000);
                LCD_SetColors(CL_RED,CL_WHITE);
                sprintf((char *)str,"%d",tm.tm_year);
                ILI9341_DispString_EN_CH( 0,67,(char*)str);       

                if(XPT2046_PENIRQ_Read() == XPT2046_PENIRQ_ActiveLevel)
                        {
                                break;
                        }
                delay_ms(1000);
        }
这个代码是让一串数字在LCD屏幕上显示并不断闪烁,然后通过检测是否触摸屏幕来退出循环,但是需要触摸一秒左右才能退出,不灵敏,求助有没有更好的方法来设置数字显示不断闪烁并通过触摸屏幕来退出循环。

回复

使用道具 举报

发表于 2024-7-24 09:21:24 | 显示全部楼层
本帖最后由 Nalimca 于 2024-7-24 15:12 编辑

不灵敏是因为你的循环太慢,需要跑过延时函数后,才能到你的break语句
回复 支持 0 反对 1

使用道具 举报

发表于 2024-7-24 15:02:50 | 显示全部楼层
本帖最后由 Nalimca 于 2024-7-24 15:13 编辑


uint32_t time = 0;
uint8_t state = 0;
while(1)
{
     if(0 == state)
     {
         state = 1;
          LCD_SetFont(&Font24x32);
                       
                LCD_SetColors(CL_WHITE,CL_WHITE);
                ILI9341_DrawRectangle(0,67,96,32,1);
                time = 0;
      }
     if( (time % 1000)  == 0)
     {
          if(1 == state)
          {
              state = 2;
              LCD_SetColors(CL_RED,CL_WHITE);
                sprintf((char *)str,"%d",tm.tm_year);
                ILI9341_DispString_EN_CH( 0,67,(char*)str);      
            }
           else
           {
               state = 0;
           }
      }
      if(XPT2046_PENIRQ_Read() == XPT2046_PENIRQ_ActiveLevel)
       {
             break;
        }
     delay_ms(1);
     time++;
}

回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-7-24 16:00:38 | 显示全部楼层
Nalimca 发表于 2024-7-24 15:02
uint32_t time = 0;
uint8_t state = 0;
while(1)

明白了感谢大佬
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-9-8 12:36 , Processed in 0.116695 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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