在调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); //秒
|