微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于STM32的多功能数字钟

基于STM32的多功能数字钟

时间:11-18 来源:互联网 点击:

else if((tp_dev.x[0]> else if((tp_dev.x[0]>110)&&(tp_dev.x[0]<160)&&(tp_dev.y[0]>250)&&(tp_dev.y[0]<290))

{LCD_Fill(111,251,159,289,YELLOW);LCD_ShowString(120,260,36,24,24," + ");}

else if((tp_dev.x[0]>170)&&(tp_dev.x[0]<220)&&(tp_dev.y[0]>250)&&(tp_dev.y[0]<290))

{LCD_Fill(171,251,219,289,YELLOW);LCD_ShowString(180,260,36,24,24," - ");}

}

if((USART_RX_STA&0x8000))//收到了一帧串行口数据,进行解析。

{

switch(USART_RX_BUF[0])

{

case t:{//time是调时间

S_timer.s_hour=(USART_RX_BUF[1]-0)*10+(USART_RX_BUF[2]-0);

S_timer.s_min=(USART_RX_BUF[3]-0)*10+(USART_RX_BUF[4]-0);

S_timer.s_sec=(USART_RX_BUF[5]-0)*10+(USART_RX_BUF[6]-0);

USART_RX_STA=0;

printf("set time:%s",USART_RX_BUF);

calendar.sec=S_timer.s_sec;

calendar.hour=S_timer.s_hour;

calendar.min=S_timer.s_min;

calendar.w_date=S_timer.s_date;

calendar.w_month=S_timer.s_month;

calendar.w_year=S_timer.s_year;

calendar.week=S_timer.s_week;

RTC_Set(calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec);

break;

}

case d:{//date是调日期

S_timer.s_year =(USART_RX_BUF[1]-0)*1000+(USART_RX_BUF[2]-0)*100+(USART_RX_BUF[3]-0)*10+(USART_RX_BUF[4]-0);

S_timer.s_month=(USART_RX_BUF[5]-0)*10+(USART_RX_BUF[6]-0);

S_timer.s_date=(USART_RX_BUF[7]-0)*10+(USART_RX_BUF[8]-0);

USART_RX_STA=0;

printf("set date:%s",USART_RX_BUF);

calendar.sec=S_timer.s_sec;

calendar.hour=S_timer.s_hour;

calendar.min=S_timer.s_min;

calendar.w_date=S_timer.s_date;

calendar.w_month=S_timer.s_month;

calendar.w_year=S_timer.s_year;

calendar.week=S_timer.s_week;

RTC_Set(calendar.w_year,calendar.w_month,calendar.w_date,calendar.hour,calendar.min,calendar.sec);

break;

}

default :break;

}

}

if(flag_tiao!=0)//用于调节时闪烁显示

{

switch(flag_tiao)

{

case 1: {

if(flag_250ms==1)

{

LCD_ShowString(30+12*13,140,24,24,24," ");

break;

}

else goto kk2;

}

case 2: {

if(flag_250ms==1)

{

LCD_ShowString(30+12*10,140,24,24,24," ");

break;

}

else goto kk2;

}

case 3: {

if(flag_250ms==1)

{

LCD_ShowString(30+12*7,140,24,24,24," ");

break;

}

else goto kk2;

}

case 4: {

if(flag_250ms==1)

{

LCD_ShowString(30+12*15,100,24,24,24," ");

break;

}

else goto kk2;

}

case 5: {

if(flag_250ms==1)

{

LCD_ShowString(30+12*12,100,24,24,24," ");

break;

}

else goto kk2;

}

case 6: {

if(flag_250ms==1)

{

LCD_ShowString(30+12*10,100,24,24,24," ");

break;

}

else goto kk2;

}

case 7: {

if(flag_250ms==1)

{

LCD_ShowString(30+12*5,100,48,24,24," ");

break;

}

else goto kk2;

}

kk2:

{

sprintf(temp,"DATE:%d-%d-%d %d",calendar.w_year,calendar.w_month,calendar.w_date,calendar.week);

LCD_ShowString(30,100,210,24,24,temp);

sprintf(temp,"TIME: %d:%d:%d ",calendar.hour,calendar.min,calendar.sec);

LCD_ShowString(30,140,210,24,24,temp);

break;

}

default :break ;

}

}

else//正常显示

{

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top