logo

有关U盘文件读写模块的问题解答[推荐]
* 需要设计参考资料(光盘资料可以参考FILELIST.TXT文档,网上资料更新)
U盘文件读写模块的资料在光盘CH375/MODULE/PUB目录下CH375HM.PDF,网上提供最新资料。
常规问题可以参考单片机通过CH375读写U盘的问题解答。
* 有关U盘文件的一些基础知识
WINDOWS下U盘的文件系统主要有FAT12/FAT16/FAT32,我们的子程序库都能支持,使用角度感觉无区别。
单片机不需要考虑文件系统,只需要了解文件名、文件长度等基础知识。一个U盘中可以有多个文件,每
个文件都是一组数据的集合,以文件名区分和识别。文件长度是指文件中有效数据的长度,而实际占用
的磁盘空间通常大于或者等于文件长度,实际文件数据的存放可能不是连续的,而是通过一组“指针”
链接的多个块(也就是分配单元或簇),从而能够根据需要随时增大文件长度以容纳更多数据。目录是
为了便于分类管理,管理者可以人为指定将多个文件归档在一起,例如2004年的文件归到一个目录中。
* 有关U盘模块的一般介绍
U盘模块可以作为系统集成和单片机系统的一个实现特定功能的部件,与单片机系统之间的接口为8位并
口或者异步串口,也可以定制其它接口。实际的硬件样品提供标准版(支持TTL串口或者8位并口)和串
口版(DB9插针,支持RS232串口,可改为TTL)。模块对单片机系统的硬件要求很低,代码要几百字节,
RAM最少可以是几个字节(数据流方式)或者几十个字节(字节读写方式)或者512字节(扇区方式)。
* 关于U盘模块的程序升级和功能配置
U盘模块内部的单片机是可以随时升级程序的,当然也可以由用户自行编写程序下载。厂家随时提供最
新版的模块程序升级包CH375HMU.ZIP,目标程序格式为专用BIN格式,可以由用户通过工具软件下载。
厂家提供的模块目标程序分为三种版本,与硬件无关,可以下载到标准版或者串口版模块中:
标准版只支持FAT12/FAT16、标准版支持FAT12/FAT16/FAT32、串口版支持FAT12/FAT16/FAT32
标准版的程序可以使用内部看门狗,由于看门狗硬件不同,所以标准版程序只能使用在厂家的模块中。
标准版程序可以支持并口或者串口,因为要判断,所以如果用于串口,标准版的程序效率不如串口版。
串口版的程序只支持串口,没有内部看门狗,但是支持多种单片机,包括用户自己做的模块硬件。
要使用模块的看门狗,那么应该下载标准版程序,并且在配置模块时选中检查串口两数据间隔超时。
要使用模块的USB在线配置和程序升级功能,那么应该定购厂家的模块硬件,定型产品可以自己做硬件。
* 如何定制模块的功能
因为模块内部有单片机,所以可以由其主动采集数据。模块的串口版源程序可以开放给小批量客户,便
于用户自己修改源程序加上特定功能,例如使模块主动采集外部仪器的数据,修改为其它专用接口等。
另外,我们还提供带LCD显示的数据采集器成品,功能可以定制,用于从串口等接口采集数据到U盘中。
* 模块产生的文件在WINDOWS下无法读取或者删除不掉
首先文件名必须符合DOS规范(WINDOWS下的小写或长文件名实际上都对应一个自动产生的DOS文件名):
1、文件名分为两部分,主名和扩展名,之间为小数点分开。目录名与文件名类似,下同。
2、扩展名可以省略,如果没有扩展名,小数点也必须省去,扩展名代表文件类型,只是代表而已。
3、主名长度不超过8个字符,扩展名长度不超过3个字符。
4、必须是大写字母A-Z、数字0-9、下划线等,而不能用特殊字符例如空格、斜杠、大于小于等。
5、文件名以00H结束。
例如有效文件名,字符串的最后以00H结束,C语言是"\x0":
A B2KD9DI8 D4889.C D2004_12.TXT 中文.DOC
例如无效文件名
a 小写
B2KD8D18X 主名太长
D48 89.C 空格无效
DOIW44I4.TXT2 扩展名太长
中文.DoC 小写
实际文件名还要加上左斜杠以指定目录,例如,strcpy(mCmdParam.Create.mPathName,"/MYFILE.TXT");
注意在C语言中容易出现strcpy(mCmdParam.Create.mPathName,"\MYFILE.TXT");右斜杠必须是两个。
另外ExecCommand(CMD_FileCreate,sizeof("/MYFILE.TXT")); 丢弃了文件名的结束符,
应该改为ExecCommand(CMD_FileCreate,sizeof("/MYFILE.TXT")+1); 加上一个字节是文件名结束符,
文件名后面必须带00H结束,复制和输出时也要加上,所以长度比文件名的字符数大1。
因为大多数用户都使用固定的文件名,不需要复杂的功能,所以我们没有在程序库中增加代码自动处理
大小写转换等问题,而是由用户根据需要自行处理,以节约不需此功能时的代码。
另外,写完文件后要及时修改文件长度,如果写入了数据而文件长度为0,那么WINDOWS也读不出数据。
对于已经发生错误的U盘,在重新使用前应该在WINDOWS下做磁盘扫描,修正原有错误后再使用。
* 在U盘中无法创建更多文件
对于FAT12和FAT16文件系统的U盘,默认情况下,根目录下最多只能有512个文件(含子目录和部分已被
删除的文件),多了就无法创建。如果必须产生更多文件,两种方法可选:一是创建子目录,在子目录
中可以无限制地创建更多文件;二是在FAT32文件系统的U盘根目录下可以无限制地建议更多文件。
* 为何在低波特率下通讯正常,调高了就不行
可靠的串口通讯,波特率误差应该小于1%。例如,模块的X2频率为18.432MHz,而单片机系统的频率为
24MHz,那么两者在高波特率通讯时因为频率误差大而收发失误多。要确保计算波特率时结果是整数,
为可靠起见,如果单片机系统的频率为22.1184MHz,那么模块最好也用22.1184MHz,这样任何波特率下
双方波特率完全没有误差,当然通讯更稳定。在批量订购模块时,可以指定模块的X2的频率。
* 我不是用MCS51单片机,为何每个返回的文件长度总是不正确,而其它操作基本正常
文件长度是双字32位数据,对于字数据或者双字数据,最低字节在前还是最高字节在前,分别称为小端
和大端模式,模块默认的配置为大端模式,适用于C语言的MCS51单片机,如果是MSP430、ARM、8086等
单片机,那么应该选择小端模式。选择大小端可以由用户自行通过USB在线配置完成。
* 如果读写文件时出错如何处理
当U盘闪存寿命快结束时,写文件容易出错,简单的解决方法是重试。在ExecCommand子程序中添加对错
误状态USB_INT_DISK_RETRY的处理,具体可以参考最新下载的模块例子程序。
特别提醒,当U盘闪存寿命快结束时,包括WINDOWS系统在内,即使写成功并不代表U盘数据一定正确。
* 如何了解U盘模块是否工作
当不确定U盘模块是否能工作时,可以通过U盘演示功能进行测试,首先将模块上电,然后将跳线插上,
此时LED亮,插上U盘(也可以通电前插上U盘),模块将会在U盘中产生一个文件,文件内容是当前U盘
模块的版本号,工作模式和接口配置值,以及串口方式时的波特率除数,对于串口要检查波特率设置。
另外,还可以用我们提供的演示/调试工具(在升级工具包CH375HMU.ZIP中)通过计算机串口演示。
* CH375支持哪些U盘
目前CH375支持市面上90%以上的标准功能的U盘,如果有U盘不支持,首先下载网上最新的子程序库或者
升级模块程序,如果仍然不支持,请将U盘型号发至我们的技术信箱,若能直接将U盘寄至我公司更好。
另外,带特定额外功能的U盘可能不支持,内置USB-HUB的U盘如果支持就要增加代码。
如何用pc机串口通过模块对u盘进行读写操作?
这人很懒,什么都没留下
你可以用我们的串口调试工具啊,那个就是可以通过计算机的PC口来操作U盘
E-MAIL:fqb@wch.cn TEL:025-52638375
请问是直接输入十六进制的命令吗?可是我不知道怎么输入命令的参数啊。。谢谢。。。。。
这人很懒,什么都没留下
哪儿有串口调试工具啊?
这人很懒,什么都没留下
在网站上面有下载
E-MAIL:fqb@wch.cn TEL:025-52638375
我刚刚买的串口版USB模块,按照上述 “如何了解U盘模块是否工作”做了测试,怎么不见U盘中产生文件啊?请问在这个测试中还需要接单片机或PC机吗?

懒得说
是我没接J1跳线,呵呵
懒得说
我用字节模式写数据,怎么样才能让数据在记事本中回车换行呢?是加0XD和0XA吗?但是我加了不行啊,出现乱码,请指点一二,谢谢。
这人很懒,什么都没留下
是0X0D,0X0A,在后面在加一个0X00看可以不可以?
E-MAIL:fqb@wch.cn TEL:025-52638375
请教,我用的是标准版的u盘文件读写模块如何确定模块可以正常工作?
这人很懒,什么都没留下
WCH的技术高手你们好:
我现在遇到一个棘手的问题:
以前我们U盘读写模块,读写容量小于用1G的U盘很正常;
现在U盘容量都很大,读1G的就出错.
我的模块是4月份购买的,不知道近期系统是否有升级??
盼复!!!!!
U模块用户
4月份的模块应该是最新的模块,你可以试下模块的自动演示的功能,看下这个U盘支持不支持自动演示
E-MAIL:fqb@wch.cn TEL:025-52638375
技术高手你们好:
我想用AVR单片机来驱动标准版的模块,但是我用的没有外部总线,不知道你们有没有现成的程序可以提供参考呢?我用软件来模拟总线的时序但是不好使。非常郁闷。
这人很懒,什么都没留下
我们这里有一个AVR8515的例子程序,不过是总线的,你可以直接去修改三个函数(写索引地址,写数据和读数据),要是还是不好用的话,你可以将你的三个读写子函数帖出来看下,我们可以给你修改下时序。
E-MAIL:fqb@wch.cn TEL:025-52638375
我现在使用U盘读写模块,遇到打开文件返回码为42H或B3H,请帮忙解决!!!!
这人很懒,什么都没留下
只有登录才能回复,可以选择微信和github账号登录