【N32G430开发板试用】RTC电子时钟
在N32G430片内具有RTC计时器,通过其例程可经验其性能,其运行效果如图1所示。图1RTC测试 通过对程序的分析可知,其主要的处理过程为;1)使用以默认数据来设置RTC输出值,其语句为:RTC_Date_And_Time_Default_Value();2)选取RTC时钟源,其语句为:RTC_CLKSource_Config(RTC_CLK_LSE,RTC_CLK_FIRST_CONFIG);3)禁止RTC日历调节,其语句为:RTC_Calendar_Config(DISABLE);4)配置PA7引脚中断,其语句为:EXTI_PA7_Configuration();5)清除PA7中断状态,其语句为:EXTI_Interrupt_Status_Clear(EXTI_LINE7);6)配置RTC校准输出模式,其语句为:RTC_Calibration_Output_Config(RTC_CALIB_OUTPUT_1HZ);7)配置RTC输出模式,其语句为:RTC_Output_Mode_Config(RTC_OUTPUT_PUSHPULL);那么RTC的时间值是如何输出的呢?原来它是通过PA7每秒发出一次中断来调用对日期和时间的显示输出,其内容如下:void EXTI9_5_IRQHandler(void){
if (EXTI_Interrupt_Status_Get(EXTI_LINE7) != RESET)
{
/* Display the current Date on the Hyperterminal */
RTC_Date_Show();
RTC_Time_Show();
/* Clear the UP Button EXTI line pending bit */
EXTI_Interrupt_Status_Clear(EXTI_LINE7);
}
}
这样,在配有OLED屏的基础上,只需修改相应的显示函数即可实现RTC的显示。修改后,实现时间值显示的函数为;void RTC_Time_Show(void)
{
RTC_Time_Get(RTC_FORMAT_BIN, &RTC_TimeStructure);
LCD_ShowNum(20,50, RTC_TimeStructure.Hours,2,YELLOW);
LCD_ShowNum(44,50, RTC_TimeStructure.Minutes,2,YELLOW);
LCD_ShowNum(68,50, RTC_TimeStructure.Seconds,2,YELLOW);
(void)RTC->DATE;
}
实现图2和图3显示效果的主程序为:int main(void)
{
RTC_Date_And_Time_Default_Value();
RTC_CLKSource_Config(RTC_CLK_LSE, RTC_CLK_FIRST_CONFIG);
RTC_Calendar_Config(DISABLE);
EXTI_PA7_Configuration();
EXTI_Interrupt_Status_Clear(EXTI_LINE7);
RTC_Calibration_Output_Config(RTC_CALIB_OUTPUT_1HZ);
RTC_Output_Mode_Config(RTC_OUTPUT_PUSHPULL);
RTC_Calibration_Output_Enable();
LCD_Initialize();
Lcd_Init();
LCD_Clear(BLACK);
LCD_ShowString(20,10,"N32G430 TEST",RED);
LCD_ShowString(20,30,"OLED & RTC",YELLOW);
LCD_ShowString(20,50,"::",YELLOW);
SysTick_Delay_Ms(1000);
while (1);
}
经程序的编译下载,即可达到如下的显示效果。图2 计时效果图3计时效果
此外,如何使该电子时钟加以校时功能,可使用板载的按键来配置一个时间设置程序来替代函数RTC_Date_And_Time_Default_Value()的处理。
页:
[1]