[内核技术] 读取SD卡扇区程序读回来一堆乱码

[复制链接]
984|0
 楼主| 又见龙楼 发表于 2018-12-7 13:44 | 显示全部楼层 |阅读模式
SD卡, se, AD, ST, ck
本帖最后由 又见龙楼 于 2018-12-7 13:52 编辑

求各位大神指教……
问题是这样的,我用disk_read程序读SD卡扇区,结果读到的跟我用winhex看到的根本不一样,可以说是一堆乱码,相信大家都知道最后两位是55AA才是正确的,可我是前面几位是55AA,后面的数据都不知道从哪里来的,换张卡也一样,最可怕的是,换个扇区号也一样,几天了,实在绝望了,求大家赐教……
对了,我用的是英飞凌芯片,底层是没什么问题的。

这是代码
  1. DRESULT disk_read (
  2.         BYTE drv,                /* Physical drive number (0) */
  3.         BYTE *buff,                /* Pointer to the data buffer to store read data */
  4.         DWORD sector,        /* Start sector number (LBA) */
  5.         UINT count                /* Number of sectors to read (1..128) */
  6. )
  7. {
  8.         int m,n;
  9.         if (drv || !count) return RES_PARERR;                /* Check parameter */
  10.         if (Stat & STA_NOINIT) return RES_NOTRDY;        /* Check if drive is ready */

  11.         if (!(CardType & CT_BLOCK)) sector *= 512;        /* LBA ot BA conversion (byte addressing cards) */

  12.         if (count == 1)
  13.         {        /* Single sector read */
  14.                 m=send_cmd(CMD17, sector);
  15.                 n=rcvr_datablock(buff, 520);
  16.                 strange[3]=m;
  17.                 strange[4]=n;

  18.                 if((m==0)&&(n==1))   count = 0;
  19.         }


  20.         else
  21.         {
  22.                 /* Multiple sector read */
  23.                 if (send_cmd(CMD18, sector) == 0) {        /* READ_MULTIPLE_BLOCK */
  24.                         do {
  25.                                 if (!rcvr_datablock(buff, 512)) break;
  26.                                 buff += 512;
  27.                         } while (--count);
  28.                         send_cmd(CMD12, 0);                                /* STOP_TRANSMISSION */
  29.                 }
  30.                 deselect();

  31.                 strange[2]=count;
  32.                 return count ? RES_ERROR : RES_OK;        /* Return result */
  33.         }

  34. }

这是读取结果

本帖子中包含更多资源

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

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

本版积分规则

1

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部