单片机结合CH376的U盘读写的一般步骤

来源:互联网 发布:java版svg编辑器下载 编辑:程序博客网 时间:2024/06/07 14:39
4.4. 文件读写的参考步骤
4.4.1. 初始化,进行任何一项文件操作之前的必要步骤
① 调用 mInitCH376Host 初始化,进入 USB-HOST 工作方式或者 SD 卡主机工作方式(模式 3)
② 等待 U 盘或者 SD 卡连接,U 盘可以由 CH376 自动检测并产生中断通知,或者由单片机调用子程序
CH376DiskConnect 定期查询,SD 卡必须由单片机自行检测
③ 调用 CH376DiskMount,初始化 U 盘或者 SD 卡,并测试磁盘是否就绪,失败后可以重试最多 5 次

④ 上述步骤只需执行一次,除非 U 盘或者 SD 卡断开后重新连接,那么必须回到步骤②

4.4.2. 顺序读文件
① 调用 CH376FileOpenPath,打开文件
② 多次调用 CH376ByteRead,读取数据
③ 调用 CH376FileClose,关闭文件,可选操作
4.4.3. 顺序改写文件(覆盖原数据,超过原文件长度后转变为追加数据)
① 调用 CH376FileOpenPath,打开文件
② 多次调用 CH376ByteWrite,写入数据
③ 调用 CH376FileClose,参数是 TRUE,关闭文件并允许自动更新文件长度
4.4.4. 向已有文件追加数据
① 调用 CH376FileOpenPath,打开文件
② 调用 CH376ByteLocate,参数是 0xFFFFFFFF,移动文件指针到文件末尾
③ 多次调用 CH376ByteWrite,写入数据
④ 调用 CH376FileClose,参数是 TRUE,关闭文件并允许自动更新文件长度
4.4.5. 新建文件并写入数据
① 调用 CH376FileCreatePath,新建文件
② 多次调用 CH376ByteWrite,写入数据
③ 调用 CH376FileClose,参数是 TRUE,关闭文件并允许自动更新文件长度
4.4.6. 先读文件再改写文件
① 调用 CH376FileOpenPath,打开文件
② 多次调用 CH376ByteRead,读取数据
③ 调用 CH376ByteLocate,参数是 0,移动文件指针到文件头部
④ 多次调用 CH376ByteWrite,写入数据
⑤ 调用 CH376FileClose,参数是 TRUE,关闭文件并允许自动更新文件长度
4.4.7. 如果文件已经存在则追加数据,如果文件不存在则新建文件再写入数据
① 调用 CH376FileOpenPath,打开文件,如果返回 ERR_MISS_FILE 说明文件不存在,那么转步骤③
② 调用 CH376ByteLocate,参数是 0xFFFFFFFF,移动文件指针到文件末尾,然后转步骤④
③ 调用 CH376FileCreatePath,新建文件
④ 多次调用 CH376ByteWrite,写入数据
⑤ 调用 CH376FileClose,参数是 TRUE,关闭文件并允许自动更新文件长度
4.4.8. 定期采集数据(数据量较小时参考 EXAM7,数据量较大时参考 EXAM8)
① 采集之前,调用 CH376FileCreatePath,新建文件
② 采集数据,转换为相应的格式,例如二进制数据、字符串等
③ 调用 CH376ByteWrite,写入数据,一次写不完,可以分多次写入
④ 如果要等很长时间才有下一组数据,为了避免在此期间发生断电、U 盘拔出等事件,导致文件长
度不正确,可以用 CH376ByteWrite 写入 0 长度的空数据,强制更新文件长度
⑤ 如果整个采集过程结束,或者文件已经太大,那么转到步骤⑥,否则转到步骤②
⑥ 调用 CH376FileClose,参数是 TRUE,关闭文件并允许自动更新文件长度
⑦ 如果是因为文件已经太大的原因,那么转到步骤①,新建另一个文件名不同的新文件后继续
4.4.9. 修改文件名、文件日期/时间、文件长度等文件目录信息
① 调用 CH376FileOpenPath,打开文件
② 调用 CH376DirInfoRead,将文件目录信息读入内存
③ 调用 CH376ReadBlock 读出原文件目录信息
④ 调用 CH376DirInfoRead,将文件目录信息读入内存

⑤ 调用 CH376WriteOfsBlock 写入新的文件目录信息
⑥ 调用 CH376DirInfoSave,保存文件目录信息
⑦ 调用 CH376FileClose,参数是 FALSE,关闭文件并禁止自动更新文件长度,可选操作
4.4.10. 创建子目录(文件夹)
① 调用 CH376DirCreatePath,新建子目录(文件夹)
② 调用 CH376FileClose,参数是 FALSE,关闭目录并禁止自动更新文件长度
4.4.11. 新建具有小写文件名和长文件名的文件
① 根据长文件名生成短文件名,将短文件名组合成全路径
② 调用 CH376CreateLongName,新建具有长文件名的文件
③ 文件创建成功,下面可以按无长文件名的文件处理,例如调用 CH376FileOpenPath 打开
4.4.12. 获取文件的长文件名
① 提供短文件名,或者通过枚举等方法获得短文件名
② 调用 CH376GetLongName,根据短文件名获得相应的长文件名
③ 下面可以按无长文件名的文件处理,例如调用 CH376FileOpenPath 打开

原创粉丝点击