全部学习汇总: https://github.com/GreyZhang/SdFatFs
前面已经测试了Card Command的功能正常,接下来使用相应的功能尝试判断SD卡的类型。主要的测试流程在文档中有一个描述:
这里需要注意的是,有些命令比如ACMD41属于Application CMD。发送的方式跟CMD有一定相似,但是多一部分信息。尝试做CMD的发送的时候,我顺便把这个命令实现了,这次正好测试一下。
ACMD的发送实现:
而SD的类型判断如下:
首先判断是version1还是version2,如果是1,那么结果唯一。如果是2,那么还有高容量的可能。
如果是version2,可以查看是否是高容量卡。这个判断需要注意的是有一部分信息在此被丢弃了。
测试结果:
成功判断出来了是高容量卡。这样,这个测试到此结束。这部分功能其实可以固化到这个初始化的过程中,因为初始化之后,相应的信息全都可以变量化、状态化,或者修改成访问静态量的函数。这样,可以避免后期需要时候的大量信息交互。