SD卡读取CID信息
自带的SD卡读取信息SD_MMC.C中,读取CID的信息,打印产品名称有点问题。if(CMD2(SDCard.cCardCID))
{
#ifdef __SD_MMC_DEBUG__
Uart_Printf("CID\n");
Uart_Printf("MID = %d\n",SDCard.cCardCID);
Uart_Printf("OLD = %d\n",(SDCard.cCardCID*0X100)+SDCard.cCardCID);
Uart_Printf("生产厂家:%s\n",(SDCard.cCardCID+3));
Uart_Printf("生产日期:20%d,%d\n",((SDCard.cCardCID&0x0f)<<4)+((SDCard.cCardCID&0xf0)>>4),(SDCard.cCardCID&0x0f));
#endif
}
根据CID的定义
第一字节是MID
第2、3字节是OID
第4-8字节是PNM
所以注释有问题,应该是产品名称,而不是生产商
用uart_printf来打印5个字节,判断结尾“\0”有问题,会出现乱码
用5个%c来打印,成功
注释也该改一下
if(CMD2(SDCard.cCardCID))
{
#ifdef __SD_MMC_DEBUG__
Uart_Printf("CID\n");
Uart_Printf("MID = %d\n",SDCard.cCardCID);
Uart_Printf("OEM ID = %d\n",(SDCard.cCardCID*0X100)+SDCard.cCardCID);
Uart_Printf("Product Name is:%c%c%c%c%c\n",SDCard.cCardCID,SDCard.cCardCID,SDCard.cCardCID,SDCard.cCardCID,SDCard.cCardCID);
Uart_Printf("Manual Data:20%d.%d\n",((SDCard.cCardCID&0x0f)<<4)+((SDCard.cCardCID&0xf0)>>4),(SDCard.cCardCID&0x0f));
#endif
}
页:
[1]