sd卡读写多块的流程,大家分享:

2020-01-13 18:33发布

MMC_write_Blocks:
1,初始化,进入SPI模式,
2,发CMD25命令,
3,连读2字节,好象读1字节也可以,
4,发start(发一字节0xfc到sd卡),
5,发一个数据块到sd卡,
6,发2字节0xff到sd卡,当作CRC16,
7,读忙信息,直到不忙,
8,如果所有数据没有发完,跳到4,
9,结束,发end(发一字节0xfb到sd卡),
10,发CMD12命令。

SMMC_read_Blocks:
1,初始化,进入SPI模式,
2,发CMD18命令,
3,循环读到0xfe字节,
4,读1个数据块到sd卡,
5,读2字节CRC16,
6,如果所有数据没有读完,跳到3,
7,结束,发CMD12命令。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
27条回答
k0t0
1楼-- · 2020-01-13 20:05
好帖,顶一下。
zhuhuagui
2楼-- · 2020-01-13 22:34
 精彩回答 2  元偷偷看……
weiwgml
3楼-- · 2020-01-13 23:06
记号
lubaoliang
4楼-- · 2020-01-13 23:39
谢谢
zengyi703
5楼-- · 2020-01-14 05:22
jinnian
6楼-- · 2020-01-14 05:43
不知道第6步与7步之间是否应该加上
  temp = SPI_SendData(0XFF);                /* 读取XXX0 0101字节 */
  temp = temp & 0X1F;
  if (temp != 0X05)
  {
    return FALSE;                          /* 写入失败 */
  }
请指教!

一周热门 更多>