396_Arduino SD卡驱动命令发送C实现尝试
全部的学习汇总:https://github.com/GreyZhang/SdFatFs
这次总结一下Arduino的SD卡驱动实现,并把这部分代码尽量改成更加容易移植的C模式。因为,C模式在C++中依然可用,反之则不然。再者,我现在的工作主要的编程环境还是C。
看一下主要的代码实现:
根据代码,大致分析一下过程。我增加一份加了中文注释批注的代码如下:
这样,比我直接用文本去描述整个过程看起来会更加清晰一点。其实,片选是否是软件来控制这个不是很重要。即使是通过硬件模块自动实现片选的选中有效或者取消,留着一个空接口也无伤大雅。这里,需要主要的主要还是一个流程,包括一部分等待、时间演示还有补充的SPI命令信息。当然,也得注意到发送的顺序应该是小端的模式。
我自己把这部分涉及到的变量以及接口全都修改了一下,因为没有namespace,目前的变量很容易导致冲突。我经过一点点修改,或许会让这个变得更加容易移植。
我的修改如下:
这部分,完全调通了之后,代码也会同步到Github上,至少等我测试完命令的响应。其实这次的代码显然无法直接做到纯C化,毕竟我用到的SPI驱动其实还是C++实现的。但是应该已经很接近了,或许会很容易使用了。