在調rtc的時候遇到了結構體,由于oled在顯示個位數字的時候不能自動在前面補零,所以我想到使用sprintf函數轉換數據補零,但是實際上,在使用sprintf函數以后,
程序就死在sprintf函數這里了,很是苦惱,有大佬知道這類結構體數據應該如何轉換顯示嗎
//年(24) 月(25) 日(26) 時(27) 分(28) 秒(29) 星(30) 期(31)
struct tm time;
time = Time_GetCalendarTime();
char* year;
sprintf(year,"%d",time.tm_year );
// printf(year,"Time: %d-%d-%d %02d:%02d:%02d \r\n", time.tm_year );
OLED_ShowNum(8,2,*year,4,16,1); //我只實驗了year,如果不使用sprintf函數程序是正常的
OLED_ShowCHinese(48,2,24);//年
OLED_ShowNum(64,2,time.tm_mon+1,2,16,1);
OLED_ShowCHinese(80,2,25);//月
OLED_ShowNum(96,2,time.tm_mday,2,16,1);
OLED_ShowCHinese(112,2,26);//日
OLED_ShowNum(16,6,time.tm_hour,2,16,1);
OLED_ShowCHinese(32,6,27);//時
OLED_ShowNum(48,6,time.tm_min,2,16,1);
OLED_ShowCHinese(64,6,28); //分
OLED_ShowNum(80,6,time.tm_sec,2,16,1);
OLED_ShowCHinese(96,6,29); //秒
|