394_Arduino SD卡驱动实现分析-私有成员和方法

         全部的学习汇总:https://github.com/GreyZhang/SdFatFs

         私有成员变量或者方法,应该类似于C版本设计中的static类的信息,有一定的访问的限制处理。

         根据代码,大概总结一下SD卡的操作。

394_Arduino SD卡驱动实现分析-私有成员和方法

  1. 先看几个成员变量,包括的信息大概有:块(编号?)、片选管脚、错误码、在块中(操作?)、偏移量(一个块的偏移量?)、部分块读取、状态、类型。
  2. 卡命令发送分为两个,一个是应用命令另一个是命令。从是先看,应用命令的实现是一个内联函数,增加了一个CMD55的发送。卡命令,应该就是SPI传输的一个单元封装。

         报错函数,直接返回的是一个错误码,也是以内联函数的方式实现的。

  1. 读寄存器;
  2. 发送写入命令;
  3. 片选设置为高;(可能是软件模式中用)
  4. 片选设置为低;(可能是软件模式中用)
  5. 返回卡类型;
  6. 等待一定的时间到卡不忙碌?
  7. 写入数据,传入令牌和数据地址;
  8. 等待块的开始;

结合前面看到的public的成员信息,大概有了一个初步的认识。不过,还是有一些模糊信息需要再代码分析或者测试的过程中进一步明确。或许,我要能够掌握很好的一个方式就是把这些功能改写成C的版本。我也可以借鉴一部分C++ 的风格也说不定。