看代码是用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("
");
}
}
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>