天嵌 ARM开发社区

 找回密码
 注册
查看: 2419|回复: 0

SD卡读取CID信息

[复制链接]
chinxue 发表于 2018-9-9 15:54:11 | 显示全部楼层 |阅读模式
自带的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来打印,成功

注释也该改一下
  1.         if(CMD2(SDCard.cCardCID))
  2.         {
  3.                 #ifdef __SD_MMC_DEBUG__
  4.                 Uart_Printf("CID\n");
  5.                 Uart_Printf("MID = %d\n",SDCard.cCardCID[0]);
  6.                 Uart_Printf("OEM ID = %d\n",(SDCard.cCardCID[1]*0X100)+SDCard.cCardCID[2]);
  7.                 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]);
  8.                 Uart_Printf("Manual Data:20%d.%d\n",((SDCard.cCardCID[13]&0x0f)<<4)+((SDCard.cCardCID[14]&0xf0)>>4),(SDCard.cCardCID[14]&0x0f));
  9.                 #endif
  10.         }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-26 11:39 , Processed in 1.031256 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表