pic - 部分 SD 卡写入失败(CMD24 返回 CRC 错误)
问题描述
我正在使用 PIC18 通过 SPI 写入 SD 卡。对于许多卡,这是工作文件,但对于某些卡,我通过了 init 进程,但是当尝试写入卡时,CMD24 返回 0x05(我认为这是 CRC 错误)
// send CMD24 - preparing for a 512 byte block
SD_command(CMD24, 0x0001, CMD24_CRC);
// read response
res1 = SD_readRes1(); //This returns 0x05 for some cards!
我已经使用 CMD59 - CRC_ON_OFF 和参数 0x00 来打开 CRC,并且命令似乎完成了。有什么我想念的吗?
解决方案
我在论坛上阅读了某人的评论,他花了一周时间寻找此代码中的错误。在他的案例中,他发现对于一些 sd 卡,无论 crc 检查选项 (cmd59) 的状态如何,他都必须在 sd 命令中放置一个有效的 crc。也许在所有情况下都放置一个有效的 crc 更简单。
推荐阅读
- sql - 使用上一行的值和下一行的值计算平均值
- android - 安卓服务是否会因为从不安全的网络从 Play 商店下载应用程序而被黑客入侵
- java - 在 Java 中锁定文件通道时出现 OverlappingFileLockException
- javascript - img.onload 在新的 Image() 声明后拒绝触发
- asp.net-core - 如何使用 Swashbuckle.AspNetCore v5.0.0-rc2 记录 API 密钥身份验证
- c++ - 将子变量传递给父构造函数
- apache-spark - 火花高阶函数变换输出结构
- c# - 打开 xml 2.5 查找具有特定字段代码的特定占位符。C#
- sql - 如何使用 linq 从数据库中检索数据?
- javascript - 重定向在反应中无法正常工作