使用CH376,SPI口连接单片机。想实现的操作是:连接到U盘后,判断U盘中是否存在某个长文件名的文件,若不存在,则创建;若存在,则直接往里写数据。
问题: 第一次运行,U盘中无该文件,于是创建文件,OK了,并且写入数据也正确。但是下一次运行到这里,由于我的文件名变了(以实时时间为文件名),按道理应该再建立一个当前时间为名字的文件,但是在执行 CH376FileOpenPath之后,直接进入了下面的文件写部分,也就是判断文件已经存在了。
请问: 1. 想请问 CH376FileOpenPath函数是不是按照短文件名来判断的?还是全部路径和文件名呢?
2. 针对长文件名,存在一个字节写函数:CH376LongNameWrite ,还有一个字节写函数CH376ByteWrite。 在长文件名情况下,是不是只能用第一个来写,我现在用第二个写好像也行。
3. 几乎每一个例程,都有s = CH376ReadBlock( buf ); 来读取厂商信息和产品信息。我发现第一次执行此语句时确实读到了U盘的信息,但是第二次执行到这里,读到的又变成某个文件的内容了。
问题有点多啊,烦请大侠们指点迷津。!!在线等。。。。。
部分代码如下: sprintf(buf, "////%04d%02d%02d%02d%02d%02d.txt",year,month,date,hour,min,sec); s = CH376FileOpenPath( buf );//打开文件 if ( s == ERR_MISS_DIR || s == ERR_MISS_FILE ) { /* 没有找到目录或者没有找到文件 */ //此处省略部分代码,将文件名转换为unicode字符 s = CH376CreateLongName( buf, LongNameBuf ); /* 新建具有长文件名的文件 */ }
//下面是对文件的写操作。