anobodykey 发表于 2017-12-21 21:31:22

为啥会头疼呢?首先单片机可以插入U盘,肯定是得工作在HOST模式,是有该检测功能的,检测容易实现的话,数据拷贝就更容易实现了呀,就是从一个文件中读取到内存中,然后再写入到另一个文件中嘛

wolfgang2015 发表于 2017-12-21 22:36:10

本帖最后由 wolfgang2015 于 2017-12-24 00:24 编辑

2的基本步骤如下:
1、USB要设置为主机模式;
2、读取U盘配置参数区信息动态识别U盘大小
3、根据CSV文件大小判断FATFS文件系统剩余空间是否足够;
4、初始化U盘中Flash(文件系统来做,底层操作可以参考实现)
5、块写文件内容

补充一点,USB存储文件,不能以中断(HID)模式传输数据,要以数据流模式批量传输数据。

feixiang20 发表于 2017-12-21 22:37:55

写对代码也许可行,不知道可否设置自动写入

yang_alex 发表于 2017-12-21 22:39:04

现在的想法就很好啊。检测到U盘插入,延时一段时间,把TF卡中CSV文件(已经使用FATFS文件系统)拷贝到U盘。

toofree 发表于 2017-12-21 23:09:03

没在STM32上这么用过,但应该是可以实现的。
第二步时,插入U盘后,主机需要与U盘枚举。枚举成功后,并且主机正确识别U盘。枚举成功标志去触发启动读取U盘信息任务,可以去查询U盘剩余空间,如果空间足够保存要写入的原来在TF卡里面存入的CSV数据,那么就尝试写入U盘。
就想到这么点

xiefy21 发表于 2017-12-21 23:15:09

楼主是要实现文件拷贝么?从文件信息区获取到文件信息后,索引到文件后,读取文件后直接写到U盘。

dsjsjf 发表于 2017-12-21 23:44:37

打开源文件,创建新文件,打开新文件,读取源文件,写入新文件,完成后关闭两个文件

fangsir 发表于 2017-12-21 23:58:33

有文件系统在,拷贝文件很容易啊!检测到U盘插入,确认正常后开始拷贝文件。

你说的“感觉这里面第(2)步比较头疼”,具体头疼的问题是什么没说出来啊!

wanggq8 发表于 2019-6-18 11:39:03

我也在做这个

wanggq8 发表于 2019-6-19 10:39:46

学习中
页: 1 2 [3]
查看完整版本: 感觉STM32F107的接U盘导出数据比较难用