入手了Arduino mega2560,现在已经有不错的Flash以及RAM资源了。接下来,在这个平台上看看能不能学到一些我之前没有掌握的东西。近段时间,我一直想补齐一下嵌入式文件系统的短板,看看在这个平台上是否能够得偿所愿。
我的测试设备使用了Arduino的一个以太网板盾,上面带了一个SD卡的扩展卡槽。这样,可以避免很多额外的接线。
下面是我的母板以及扩展板安装好之后的状态:
其实,这个在之前我做环境数据采集的小东西的时候用过。因为那个也用到了SD卡。SD卡买的京东家的,默认的格式是extFAT。需要格式化成FAT32格式,不然Arduino SD库是不支持的。可以使用如下命令格式化SD卡(其中,最后一个参数是盘符),但是可能时间会很久。不介意安装一个软件的人,可以去网络上找一个第三方的工具。我实在是等不了这个巨长无比的时间,也转向了第三方的工具。
在使用初步这部分,我只用来加载一个例子来看看这个方案的可行性。我烧录了IDE自带的Datalogger例子。烧录成功运行之后,串口监控上能够看到大量的滚动数据。程序就是在记录这些数据。
运行一段时间之后,取下SD卡在电脑上查看。
SD卡中多了一个文件,打开文件看到的数据如下:
看一下例子的代码实现:
例子其实是取了三个管脚的AD值,然后拼接成一个字符串写入到了文件。文件的处理是不断打开关闭的,而文件的写入跟串口的打印功能使用方法十分相似。这个例子中,我只是看了一下别人的设计,甚至都没有自己修改任何东西。但是,至少能够说明这个方案的可行性。后面,针对SD卡文件系统的更多功能我将会继续探索下去。