#include "stm32f10x.h"
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "lcd.h"
#include "usmart.h"
#include "rtc.h"
//字体大小包括 24*12、 16*8 和 12*6 等三种
int main(void)
{
u8 t;
u8 lcd_id[12]; //存放LCD ID字符串
Stm32_Clock_Init(9); //系统时钟设置
uart_init(72,9600); //串口初始化为9600
delay_init(72); //延时初始化
led_init(); //初始化与LED连接的硬件接口
LCD_Init();
usmart_dev.init(72); //初始化USMART
POINT_COLOR=GREEN;
sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组。
LCD_ShowString(30,40,200,24,24,"Mini STM32 ^_^");
LCD_ShowString(30,64,200,16,16,"TFTLCD TEST");
LCD_ShowString(30,80,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(30,96,200,16,16,lcd_id); //显示LCD ID
while(RTC_Init()) //RTC初始化 ,一定要初始化成功
{
LCD_ShowString(60,130,200,16,16,"RTC ERROR! ");
delay_ms(800);
LCD_ShowString(60,130,200,16,16,"RTC Trying...");
}
//显示时间
POINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(60,130,200,16,16," - - ");
LCD_ShowString(60,170,200,16,16," : : ");
while(1)
{
if(t!=calendar.sec)
{
t=calendar.sec;
LCD_ShowNum(60,130,calendar.w_year,4,16);
LCD_ShowNum(100,130,calendar.w_month,2,16);
LCD_ShowNum(124,130,calendar.w_date,2,16);
switch(calendar.week)
{
case 0:
LCD_ShowString(60,148,200,16,16,"Sunday ");
break;
case 1:
LCD_ShowString(60,148,200,16,16,"Monday ");
break;
case 2:
LCD_ShowString(60,148,200,16,16,"Tuesday ");
break;
case 3:
LCD_ShowString(60,148,200,16,16,"Wednesday");
break;
case 4:
LCD_ShowString(60,148,200,16,16,"Thursday ");
break;
case 5:
LCD_ShowString(60,148,200,16,16,"Friday ");
break;
case 6:
LCD_ShowString(60,148,200,16,16,"Saturday ");
break;
}
LCD_ShowNum(60,170,calendar.hour,2,16);
LCD_ShowNum(84,170,calendar.min,2,16);
LCD_ShowNum(108,170,calendar.sec,2,16);
LED0=!LED0;
}
delay_ms(10);
}
}
问题1:为什么LED0的闪烁周期是2秒呢?
问题2:实验效果,比如显示时间:2016-6-28 15:36: 5 显示不是很好看,怎么让前面加0呢,像这样子:2016-06-28 15:36:05
|