最近自己参考原子哥代码,用自己的方式写SDCARD驱动,因为我的买到的板子是带彩屏的,而且已经驱动好了。想着执行一次命令就显示点什么。当显示到ACMD41的时候,总是返回CRC错误。弄了半天,又看了一下SD卡协议,看到R3响应竟然CRC位们是保留的,都是1,也就是不参与CRC检验的;而STM32是不分这个的,通通检验。 但是看了网上的好多示例代码,写R3响应都是带有判断CRC的。我没有实际跑那些代码,也不知道在这一步是不是也会返回这个错误?协议中的R3如下:
想问问大家,是我理解的这样吗?R3是不就应该在代码中忽略掉CRC?如有不对之处,请大家指教。
是自己写R3的时候没有忽略,反而总是错误。但是我想这也算一个stm32不足的地方吧,从这个while循环正常跳出反而是利用了CRC错误标志。
此帖终结!最近总是参考原子哥的代码在学习,谢谢原子哥!
一周热门 更多>