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

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 打开

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nwsuaf_huasir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值