【MM32F103开发套件试用体验】+实时时钟
-
-
昆仑神龙
- LV2工程师
-
| 2016-12-11 20:27:38
- 浏览量 925
- 回复:4
本帖最后由 昆仑神龙 于 2016-12-11 20:35 编辑
今天写了个实时时钟的小程序,与大家分享下,程序已经上传,有兴趣的可以下载看看。
#include "sys.h"
#include "uart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "lcd.h"
#include "adc.h"
#include "HAL_misc.h"
#include "HAL_adc.h"
#include "HAL_adc.h"
#include "rtc.h"
#include "HAL_rtc.h"
#include "HAL_misc.h"
#include "HAL_gpio.h"
//#include "HAL_uart.h"
int main(void)
{
u8 t=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(72,115200); //串口初始化为115200
LED_Init(); //LED端口初始化
LCD_Init();
RTC_Init(); //RTC初始化
POINT_COLOR=RED;//设置字体为红色
LCD_ShowString(60,50,200,16,16,"WarShip MM32");
LCD_ShowString(60,70,800,16,16,"RTC TEST:time");
LCD_ShowString(60,90,200,16,16,"mm32f103");
LCD_ShowString(60,110,200,16,16,"2016/12/11");
//显示时间
POINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(60,130,200,16,16," - - ");
LCD_ShowString(60,162,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,162,calendar.hour,2,16);
LCD_ShowNum(84,162,calendar.min,2,16);
LCD_ShowNum(108,162,calendar.sec,2,16);
LED0=!LED0;
}
delay_ms(10);
};
}
本帖最后由 昆仑神龙 于 2016-12-11 20:35 编辑
今天写了个实时时钟的小程序,与大家分享下,程序已经上传,有兴趣的可以下载看看。
#include "sys.h"
#include "uart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "lcd.h"
#include "adc.h"
#include "HAL_misc.h"
#include "HAL_adc.h"
#include "HAL_adc.h"
#include "rtc.h"
#include "HAL_rtc.h"
#include "HAL_misc.h"
#include "HAL_gpio.h"
//#include "HAL_uart.h"
int main(void)
{
u8 t=0;
delay_init(); //延时函数初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
uart_init(72,115200); //串口初始化为115200
LED_Init(); //LED端口初始化
LCD_Init();
RTC_Init(); //RTC初始化
POINT_COLOR=RED;//设置字体为红色
LCD_ShowString(60,50,200,16,16,"WarShip MM32");
LCD_ShowString(60,70,800,16,16,"RTC TEST:time");
LCD_ShowString(60,90,200,16,16,"mm32f103");
LCD_ShowString(60,110,200,16,16,"2016/12/11");
//显示时间
POINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(60,130,200,16,16," - - ");
LCD_ShowString(60,162,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,162,calendar.hour,2,16);
LCD_ShowNum(84,162,calendar.min,2,16);
LCD_ShowNum(108,162,calendar.sec,2,16);
LED0=!LED0;
}
delay_ms(10);
};
}