有没有大佬帮我看看,我想做一个电子时钟,用TFTLCD屏幕来做,但是遇到一个问题,就是我在循环函数里若加延时则大大影响了按键的效果,若不加延时则一直在快速刷新,一直在闪,我知道是什么问题,但是不知道怎么去解决,有没有大佬知道怎么解决。以下是本人程序,
#include "stm32f10x.h"
#include "led.h"
#include "time.h"
#include "delay.h"
#include "sys.h"
#include "lcd.h"
#include "usart.h"
#include "key.h"
u16 shi=0,fen=0,miao=0,a=0,b;
void key_can();
void TIM2_IRQHandler()
{
if(TIM_GetITStatus(TIM2,TIM_IT_Update)==SET)
{
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
{
shi=0;
}
}
}
LED1=!LED1;
TIM_ClearITPendingBit(TIM2,TIM_IT_Update);
}
}
int main()
{
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
LED_Init();
LCD_Init();
KEY_Init();
TIM_Init(9999,7199);
POINT_COLOR=RED;
while(1)
{
key_can();
LCD_Clear(BLUE);
LCD_ShowxNum(210,0,miao,2,24,0x81);
LCD_ShowChar(195,0,':',24,1);
LCD_ShowxNum(170,0,fen,2,24,0x81);
LCD_ShowChar(155,0,':',24,1);
LCD_ShowxNum(130,0,shi,2,24,0x81);
LED0=!LED0;
delay_ms(500);
}
}
void key_can()
{
b=KEY_Scan(0);
if(b==3)
{
delay_ms(10);
a++;
if(a==2)
{
a=0;
}
}
if(a==0)
{
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE);//DISABLE ENABLE
}
if(a==1)
{
TIM_ITConfig(TIM2,TIM_IT_Update,DISABLE);//DISABLE ENABLE
}
}
有没有大佬帮忙解决,或者能不能提供一个用stm32f10系列 TFTLCD屏的电子钟实验程序我参考参考,谢谢谢谢谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
搞不懂,就是不需要屏幕延时是吧
一周热门 更多>