在調(diào)rtc的時(shí)候遇到了結(jié)構(gòu)體,由于oled在顯示個(gè)位數(shù)字的時(shí)候不能自動(dòng)在前面補(bǔ)零,所以我想到使用sprintf函數(shù)轉(zhuǎn)換數(shù)據(jù)補(bǔ)零,但是實(shí)際上,在使用sprintf函數(shù)以后,
程序就死在sprintf函數(shù)這里了,很是苦惱,有大佬知道這類結(jié)構(gòu)體數(shù)據(jù)應(yīng)該如何轉(zhuǎn)換顯示嗎
//年(24) 月(25) 日(26) 時(shí)(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); //我只實(shí)驗(yàn)了year,如果不使用sprintf函數(shù)程序是正常的
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);//時(shí)
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); //秒
|