printf("ManufactDate:0x%04x",SDCardInfo.SD_cid.ManufactDate);
//串口打印信息为 ManufactDate:0x0146
printf("ManufactDate:%d",SDCardInfo.SD_cid.ManufactDate);
//串口打印信息为 ManufactDate:326
printf("ManufactDate:[%d.%d]\n", (uint8_t)(SDCardInfo.SD_cid.ManufactDate>>4), (uint8_t)(SDCardInfo.SD_cid.ManufactDate&0x0F));
//串口打印信息为 ManufactDate:[20.6]
ManufactDate是一个unsigned short 类型 0x0146 十进制为326。
如何将它转换成对应的年月日:
● MDT
制造日期由两个 16 进制数组成,一个是 8bit 的年(y),一个是 4bit 的月(m)。
m = bit [ 11 : 8 ],1 = 1 = 1 月
y = bit [ 19 : 12 ],0 = 00 = 2000 年
比如 2001 年 4 月,MDT=0b 0000 0000 0001 0100
所以0x0146 MDT= 0b 0000 0001 0100 0110 也就是2020年6月