初级会员

- 积分
- 57
- 金钱
- 57
- 注册时间
- 2019-2-27
- 在线时间
- 12 小时
|
1金钱
看代码是用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("\r\n");
}
}
}
}
}
|
最佳答案
查看完整内容[请看2#楼]
直接printf("Time:%02d:%02d:%02d",RTC_TimeStruct.RTC_Hours,RTC_TimeStruct.RTC_Minutes,RTC_TimeStruct.RTC_Seconds);
或者printf("%s\r\n",tbuf);
都可以啊,为啥选个麻烦的
|