394_Arduino SD卡驱动实现分析-私有成员和方法
全部的学习汇总:https://github.com/GreyZhang/SdFatFs
私有成员变量或者方法,应该类似于C版本设计中的static类的信息,有一定的访问的限制处理。
根据代码,大概总结一下SD卡的操作。
- 先看几个成员变量,包括的信息大概有:块(编号?)、片选管脚、错误码、在块中(操作?)、偏移量(一个块的偏移量?)、部分块读取、状态、类型。
- 卡命令发送分为两个,一个是应用命令另一个是命令。从是先看,应用命令的实现是一个内联函数,增加了一个CMD55的发送。卡命令,应该就是SPI传输的一个单元封装。
报错函数,直接返回的是一个错误码,也是以内联函数的方式实现的。
- 读寄存器;
- 发送写入命令;
- 片选设置为高;(可能是软件模式中用)
- 片选设置为低;(可能是软件模式中用)
- 返回卡类型;
- 等待一定的时间到卡不忙碌?
- 写入数据,传入令牌和数据地址;
- 等待块的开始;
结合前面看到的public的成员信息,大概有了一个初步的认识。不过,还是有一些模糊信息需要再代码分析或者测试的过程中进一步明确。或许,我要能够掌握很好的一个方式就是把这些功能改写成C的版本。我也可以借鉴一部分C++ 的风格也说不定。