找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

请问单片机以SPI方式读写TF卡时,小容量卡512M和8G卡的读写方式不一样吗?

查看数: 2659 | 评论数: 6 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2024-1-22 20:50

正文摘要:

我用的是STC8H单片机,用IO模拟SPI的方式读TF卡,用小容量(512M)读是对的,同样的程序,但是换用8G卡的时候,读出来的是乱码,三张8G卡0x00地址读出都是一样的。所有TF卡都是FAT32 4096字节格式化的。2张8g卡是cla ...

回复

ID:844772 发表于 2024-1-23 10:30
1.  sdcommand(0x01,0x00ffc0000,0xff); 改为 sdcommand(0x01,0x00ffc000,0xff); 你多了一个零。
2. for(i=0;i<9;i++)  sdwrite(0xff);  改为  for(i=0;i<15;i++) sdwrite(0xff); 发74个以上时钟才稳妥。
3. 0x87和0x95不是区分卡大小的是USB2.0 还是1.0 啊
ID:1010435 发表于 2024-1-22 23:39
npn 发表于 2024-1-22 23:02
你用什么指令读取的SD卡容量?
用逻辑分析仪检查下时序是否有错误,按照数据手册编写,随意编辑扇区可能会 ...

sdcommand(0x11,address,0xff);这句 CMD17命令
ID:57657 发表于 2024-1-22 23:15
使用WinHex搜索这段数据: 3C ED FA 5B 95 DD 72 5B 3E E7 05 C6 E5 B9 B7 8F 看是否能找到。
ID:57657 发表于 2024-1-22 23:02
你用什么指令读取的SD卡容量?
用逻辑分析仪检查下时序是否有错误,按照数据手册编写,随意编辑扇区可能会导致文件系统结构损坏。
ID:1010435 发表于 2024-1-22 21:15
sdcommand(0x01,0x00ffc0000,0xff);好像初始化中这条指令有问题,response一直是1,挑不出while循环,怎么办???
ID:1010435 发表于 2024-1-22 21:09
反复测试 应该是卡在了初始化 sdcommand(0x01,0x00ffc0000,0xff);这个命令上,response一直是1,跳不出while循环,怎么办???

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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