F4的rtc例程里面串口打印时间

2019-07-20 01:45发布

看代码是用LCD显示,想着可以用串口打印出来,这样的话后续用NTP校准时间的时候可以看得清楚点,这是最后想要用NTP校准时间,
代码里面 时间用的 unsigned          char uint8_t;类型,
而且在LCD显示的时候先强转为字符串了,
sprintf((char*)tbuf,"Time:%02d:%02d:%02d",RTC_TimeStruct.RTC_Hours,RTC_TimeStruct.RTC_Minutes,RTC_TimeStruct.RTC_Seconds);
所以。我改成这样

int main(void)
{
        //RTC_TimeTypeDef RTC_TimeStruct;
        //RTC_DateTypeDef RTC_DateStruct;
        int  t=0;
        u8 tbuf[40];
        int length=0;
        int i=0;
        RTC_TimeTypeDef RTC_TimeStruct;
        RTC_DateTypeDef RTC_DateStruct;
       
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏ輶·Ö×é2,òòÎaóÃμ½á˶¨ê±Æ÷1msÖD¶Ï
       
        uart_init(115200);                    //3õê¼»ˉ′®¿ú1 8-N-1
       
        delay_init(168);                          //3õê¼»ˉSystick1¤×÷ê±Öó
  My_RTC_Init();                                 //3õê¼»ˉRTC

        RTC_Set_WakeUp(RTC_WakeUpClock_CK_SPRE_16bits,0);                //ÅäÖÃWAKE UPÖD¶Ï,1ÃëÖóÖD¶Ïò»′Π              

        while(1)
        {
                t++;
                if(t==20000)
                {
                                t=0;
                                RTC_GetTime(RTC_Format_BIN,&RTC_TimeStruct);
                                sprintf((char*)tbuf,"Time:%02d:%02d:%02d",RTC_TimeStruct.RTC_Hours,RTC_TimeStruct.RTC_Minutes,RTC_TimeStruct.RTC_Seconds);   //长度为13=4+1+2+1+2+1+2
                          length=sizeof(tbuf);
                                for(i=0;i<length;i++)
                          {
                                        printf("%c",tbuf[i]);
                                        if(i%13==0)                 //13打完后换行
                                        {
                                                printf(" ");
                                        }
                                }
                }
       
        }

}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。