/************************************************************************************************/
/**
* @file               main.c
* @author             MCU Ecosystem Development Team
* @brief              该示例展示在Stop模式下RTC正常工作的功耗。通过串口方式打印进退Stop模式的时间。
*                     两次时间不一致，则说明Stop模式下RTC正常计时。
*
**************************************************************************************************
* @attention
* Copyright (c) CEC Huada Electronic Design Co.,Ltd. All rights reserved.
*
**************************************************************************************************
*/

/*------------------------------------------includes--------------------------------------------*/
#include "main.h"

/*-------------------------------------------functions------------------------------------------*/
int main(void)
{   
    uint8_t showtime[3] = {0};
    uint32_t hours = 0;
    uint32_t minutes = 0;
    uint32_t seconds = 0;
    
    /* 配置系统时钟 */
    system_clock_config();
    
    /* Systick初始化 */
    std_delay_init();
    
    /* GPIO初始化 */
    gpio_init();

    /* UART初始化，并使能 */
    uart_init();    
    
    /* RTC初始化，RTC时钟源为LXTAL */
    rtc_clock_config();
     
    /* NVIC初始化 */
    nvic_init();
    
    /* 等待3S，便于用户调试 */
    std_delayms(3000); 
        
    /* 获取当前时间 */
    bsp_rtc_show_time(showtime);
    hours = std_rtc_convert_bcd2bin(showtime[0]);
    minutes = std_rtc_convert_bcd2bin(showtime[1]);
    seconds = std_rtc_convert_bcd2bin(showtime[2]);
    
    /* 串口打印当前时间，显示时间格式 : hh:mm:ss */
    printf("Current Time = %02d:%02d:%02d\r\n", hours, minutes, seconds);    
    
    /* 进入Stop模式，关闭LED1 */
    LED1_OFF();     
    std_pmu_enter_stop(PMU_ENTRY_LOWPOWER_MODE_WFI);
    
    /* 等待按键唤醒Stop */
       
    /* Stop唤醒后，点亮LED1 */
    LED1_ON();      
    
    bsp_rtc_show_time(showtime);
    hours = std_rtc_convert_bcd2bin(showtime[0]);
    minutes = std_rtc_convert_bcd2bin(showtime[1]);
    seconds = std_rtc_convert_bcd2bin(showtime[2]);
    
    /* 串口打印当前时间，显示时间格式 : hh:mm:ss */
    printf("Current Time = %02d:%02d:%02d\r\n", hours, minutes, seconds);    
 
    while(1)
    {
       
    }
}




