用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

点击进入授权页面

只需一步,快速开始

  • QQ空间
  • 回复
  • 收藏

该用户从未签到

本帖最后由 xxfx1118 于 2014-5-5 14:48 编辑

最近几天使用SD卡模块及Arduino自带的SD库,发现的问题
《Arduino程序设计基础》书中没有提到的部分,在此整理一下

1、SD库创建文件只能创建文件名长度为不超过8+3的文件。
可以小于这个数,但不能长过它。例如:
SD.open("test.txt", FILE_WRITE);  
SD.open("test.a", FILE_WRITE);都可以,
但SD.open("123456789.txt", FILE_WRITE); 就创建失败。

读文件时同理。即便是卡上已经有了123456789.txt文件,用SD.open("123456789.txt")也打不开。

2、创建成的文件名只能是大写,无论你SD.open("test.txt", FILE_WRITE);  时用的是小写还是大小写混合。

3、创建文件夹时,也是不超过8位,自动变大写。
检测文件夹存在用SD.exists("TEST001/"), 就是比检测文件多用个斜杠;
向文件夹里建文件就用SD.open("TEST001/DATA001.txt", FILE_WRITE)。

4、SD.exists,SD.open(写文件) 两个命令在中途拔掉SD卡之后,依然提示成功。
我没找到让这两个命令失败的方法,只要在SD.begin()之后拔掉SD卡,程序会一直进行,检测、写文件都会提示成功,即便SD卡已经拔掉。
不知道大家是不是也遇到这样的情况。

5、再就是有一点不懂:如果要创建的文件名在变量里,则应怎样创建文件的方法。请教各位一下
举个例子 假如我接了硬件时钟1307,然后我想用今天的日期作为文件名,但是日期存在 tm.Day, tm.Month 变量里面,怎么把变量作为文件名呢?
SD.open(tm.Day , FILE_WRITE); 编译不通过。
有什么办法可以实现呢? 请教各位,谢谢






自己顶一下
前面几个没看哈,以你的认真程度肯定能解决啦,最近比较忙,就晚上看下论坛。

第5个问题,提问的时候最好带上编译器提示的报错,看看报错应该就能解决了。
我估计是你变量类型的问题,所以看了看SD库,果然
[C++] 纯文本查看 复制代码
File open(const char *filename, uint8_t mode = FILE_READ);

也就是说这里文件名必须是const char类型。
我不太清楚你的tm.DAY是什么类型,如果是string。
那么转换下就行了,例如:
[C++] 纯文本查看 复制代码
  String day = "20140506";
  const char* c_day = day.c_str();

然后用这个c_day做filename就行了
如果以上内容对你有帮助,你可以通过打赏支持作者
2、3都遇到过。
本帖最后由 liudr 于 2014-5-10 21:30 编辑

[C] 纯文本查看 复制代码
char buffer[13];
sprint(buffer,"%4d%02d%02d.TXT",tm.Year, tm.Month, tm.Day); //Assume 20140511.TXT format
SD.open(buffer,FILE_WRITE);

liudr 发表于 2014-5-10 21:29
[mw_shl_code=c,true]char buffer[13];
sprint(buffer,"%4d%02d%02d.TXT",tm.Year, tm.Month, tm.Day); //A ...

使用sprint函数直接用就行了是吧 还需要include什么头文件吗?谢谢
如果用arduino IDE,那就不用include。
liudr 发表于 2014-5-10 21:29
[mw_shl_code=c,true]char buffer[13];
sprint(buffer,"%4d%02d%02d.TXT",tm.Year, tm.Month, tm.Day); //A ...

用arduino IDE编译没有通过也
fan040908 来自手机 注册会员 2014-9-21 14:40
9#
2个办法都不行
fan040908 来自手机 注册会员 2014-9-21 14:41
10#
奈何col 发表于 2014-5-6 23:58
前面几个没看哈,以你的认真程度肯定能解决啦,最近比较忙,就晚上看下论坛。

第5个问题,提问的时候最好 ...

不是很懂这2句代码的意思,编译没有通过
12下一页
发新帖
发表评论
高级模式  
您需要登录后才可以回帖 登录 | 立即注册  
关闭

推荐主题 上一条 /2 下一条