|
修改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() ;
}
}
} |
|