硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5931|回复: 2
收起左侧

[有问必答] 修改V2板子的显示例程中的摇杆键后闪屏

[复制链接]

8

主题

17

回帖

7

积分

新手上路

积分
7
发表于 2014-5-8 11:55:39 | 显示全部楼层 |阅读模式
修改V2板子的显示例程中的摇杆键后闪屏,获得按键的值(代表时间)后,是整形的,转换成字符型,再显示,代码如下:
按键代码:

void key(void)
{
    uint8_t ucKeyCode;        /* 按键代码 */
    ucKeyCode = bsp_GetKey();    /* 读取键值, 无键按下时返回 KEY_NONE = 0 */
        if (ucKeyCode != KEY_NONE)
        {
            /* 有键按下 */
            switch (ucKeyCode)
            {
                case KEY_DOWN_USER://复位按钮按下 显示计数为零 时间为零
                    
                     {
                      k=b=c=d=0;
                      counter=0;
                     }
                      break;
                case KEY_DOWN_JOY_LEFT:    /* 摇杆LEFT键按下 显示的时间十位加一*/
                    {   
                        c++;
                       if(c>9)
                       {  
                        c=0;
                        }
                    }
                    break;

                case KEY_DOWN_JOY_RIGHT:    /* 摇杆RIGHT键按下 显示的时间个位加一 */
                    {
                        d++;
                     if(d>9)
                       {  
                        d=0;
                        }
                    }
                    break;

                case  KEY_DOWN_JOY_OK:    /* 摇杆OK键 开始按照设定的时间计数*/
                    {   
                      s = 1 ;  
                    }
                    break;

                case KEY_DOWN_JOY_UP:        /* 摇杆UP键按下 显示的时间千位加一*/
                    {   
                       k++;
                      if(k>9)
                       {  
                        k=0;
                       }   
                    }
                    break;

                case KEY_DOWN_JOY_DOWN:        /* 摇杆DOWN键按下 显示的时间百位加一 */
                    {
                        b++;
                        if(b>9)
                       {  
                        b=0;
                        }
                    }
                    break;

                default:
                    break;
            }
        }
      t=k*1000+b*100+c*10+d;
}
这是void DispTextDemo(void)中代码:

itoa(t,shijian);       //将获得的整形按键值转换成字符型后显示
     LCD_DispStr(150, 40, shijian, &tFont);

这是循环显示
    while (1)
    {
        

        do
        {
        key();
        
        DispTextDemo() ;
        } while(s==0);
        s=0;//清除开始计时标志
         bsp_StartTimer(1,t);
     while(bsp_CheckTimer(1)==0)    // 当计数超时时停止
       {
      
        counter=n*65535+TIM_GetCounter(TIM3); //这是获取定时器的计数值
        DispTextDemo() ;
       }


    }

}
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116761
QQ
发表于 2014-5-8 12:12:36 | 显示全部楼层
看着没啥问题啊,你先把void DispTextDemo(void)函数中的数据修改下,只显示个字符就行,看看是按键的问题还是哪里的问题。
回复

使用道具 举报

8

主题

17

回帖

7

积分

新手上路

积分
7
 楼主| 发表于 2014-5-8 17:10:20 | 显示全部楼层

回 eric2013 的帖子

eric2013:看着没啥问题啊,你先把void DispTextDemo(void)函数中的数据修改下,只显示个字符就行,看看是按键的问题还是哪里的问题。 (2014-05-08 12:12) 
按摇杆键的其他键都能正常显示数字但是屏幕一直在闪,但是按上键(代表千位的)就直接黑屏了,然后就换了个键,把千位的键换成TAMPEER键,结果还是一按就黑屏,不知道是啥问题
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-7-5 12:17 , Processed in 0.248869 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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