奏奏奏 发表于 2017-7-4 18:55:17

感觉STM32F107的接U盘导出数据比较难用

最近做现有产品的功能改进,
需要主控STM32F107接TF卡与U盘,
做好的实验数据存TF卡里,
然后有需要的时候导出到U盘中。
现在的方案构思是这样的:
(1)做好实验结果存TF卡,TF卡里面用CSV格式存;
(2)当检测到U盘插入时,自动将这个CSV文件导出到U盘,其中U盘与TF卡中都用FATFS文件系统。
感觉这里面第(2)步比较头疼,各位有没有什么好想法?

す疯Ⅱ恒す 发表于 2017-12-21 09:46:27

FATFS文件系统支持盘符的。首先TF卡有文件保存了,这步没问题,比如TF卡的盘符设置为0,当有USB插入时,识别成功后将其盘符设置为1或其他不冲突即可,然后直接这些复制文件,我觉得是可行的。

wenyangzeng 发表于 2017-12-21 10:05:33

本帖最后由 wenyangzeng 于 2017-12-21 17:29 编辑

假设楼主板上的USB设备是由CH375驱动,可以在平时让CH375进入低功耗睡眠挂起状态,当有USB盘插入时,CH375会自动唤醒。唤醒后即可执行将CSV文件导出到U盘的任务。

lispha 发表于 2017-12-21 10:23:47

1:建立缓存区,未传送到U盘的数据文件用定时策略或者及时更新到缓存区里面。
2:采用自动增量更新的做法,自动检测U盘插入和文件传送应该实现难度不高。
集中说一下文件传输,STTM32F这些一般来说支持的外设接口速度不是很高,我个人建议追求的是自动化,查阅一下别人封装好的或者官方的文件操作库即可,而自动化重点其实在于实现第一步的增量缓冲和增量传送,这里面是有很多细节来保证你自动化的精度的,这是一个守恒,我觉得题主的意思应该就是想提高自动化程度,那某一方面人要做的工作肯定得付出多一些。这里指的不是难度,难度方面很多写好的库了,主要是细节方面,比如你要考虑传送到一半掉电了这种,文件校检这种。当然做出一个可以用的版本只需要实现1和2就基本OK了的

jinyi7016 发表于 2017-12-21 10:44:18

这里的检测,可以每隔一段时间检测一次,可以是10s的时间
对于复制或是导出,
先搜索目标文件夹是否存在,不存在就新建,如果存在,就搜索目标文件夹里面的文件,和源文件夹里面的对比,如果不存在,则复制文件,如果搜索到源文件夹里面的是目录,目标文件夹没有,则新建目录,然后立刻进入目录进行复制

nyszx 发表于 2017-12-21 11:31:31

第二实现方法没问题呀,头疼啥呀,头疼实现不了还是头疼实现太复杂?

dzwwzd6699 发表于 2017-12-21 12:47:50

检测到u盘插入进入中断,通过单片机的SPI口往U盘上写文件。
可以试试硬件spi,速度比软件模拟快

寂寞,点燃一支烟 发表于 2017-12-21 12:55:49

检测U盘当插入之后直接拷贝就可以了

maxtch 发表于 2017-12-21 13:05:26

USB 设备插入的时候是有一个中断的。

五哥1 发表于 2017-12-21 13:28:47

不知头疼在那里?导出到U盘应该好办吧,U盘和TF卡的FATFS文件系统,应该好处理,多看下例程,也可以看下原子的例程,应该有启示。
页: [1] 2 3
查看完整版本: 感觉STM32F107的接U盘导出数据比较难用