|
自带的SD卡读取信息SD_MMC.C中,读取CID的信息,打印产品名称有点问题。
if(CMD2(SDCard.cCardCID))
{
#ifdef __SD_MMC_DEBUG__
Uart_Printf("CID\n");
Uart_Printf("MID = %d\n",SDCard.cCardCID[0]);
Uart_Printf("OLD = %d\n",(SDCard.cCardCID[1]*0X100)+SDCard.cCardCID[2]);
Uart_Printf("生产厂家:%s\n",(SDCard.cCardCID+3));
Uart_Printf("生产日期:20%d,%d\n",((SDCard.cCardCID[13]&0x0f)<<4)+((SDCard.cCardCID[14]&0xf0)>>4),(SDCard.cCardCID[14]&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[0]);
- Uart_Printf("OEM ID = %d\n",(SDCard.cCardCID[1]*0X100)+SDCard.cCardCID[2]);
- Uart_Printf("Product Name is:%c%c%c%c%c\n",SDCard.cCardCID[3],SDCard.cCardCID[4],SDCard.cCardCID[5],SDCard.cCardCID[6],SDCard.cCardCID[7]);
- Uart_Printf("Manual Data:20%d.%d\n",((SDCard.cCardCID[13]&0x0f)<<4)+((SDCard.cCardCID[14]&0xf0)>>4),(SDCard.cCardCID[14]&0x0f));
- #endif
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|