求助:串口板u盘读写模块问题
购买的串口U盘读写模块,包括375A和375B芯片两种。
一块数据采集实验板,以前只有向电脑串口发送数据功能,现在想再加上往u盘写数据功能,通过三线制实现。测量板的晶振是6Mhz,波特率设置为2400;电源用的实验数字电源,能提供3个多安培的电流;测量板的cpu为飞利浦P89c58x2fn,数据写入采用CMD_ByteWrite模式。任务是将外部数据存储器中的数据写入u盘中,每个数据文件最多包含800的数据。
实验用u盘为:Kingston 4G、清华紫光 1G。
对于不同读写模块和u盘的组合使用情况相同,问题如下:
1. 当向u盘中写入大概14个文件时就会出现问题,发现是在执行ExecCommand( CMD_DiskReady, 0 )时,执行到内部while{1}的第一次主机接收status = SIORecvChar( )失败,导致程序死掉。
2. 还出现过ExecCommand( CMD_DiskReady, 0 )返回ERR_FDT_OVER,但实际u盘根目录的文件及文件夹很少,清空u盘中的文件后能恢复正常,但写入10个文件左右就又出现同样的问题。后来发现不清空u盘文件,只在电脑上打开某个写入的文件,重新往u盘里写文件能成功一个,再写第二个就用返回ERR_FDT_OVER了。同时,不同u盘能成功写入的文件个数存在差异,但是不会超过20个。
UploadImages/20104231013189.txtUploadImages/201042310151538.txt
呵呵,您的程序看起来还真是有点费劲.
大体看了一下,在关闭文件的时候有点问题,后续参数没有指定.
由于您的程序写的有点复杂,对检查问题不是很有利,给点小的建议,您写一个最简单的测试程序,就是创建文件,然后向每个文件写点数据后关闭,然后循环再来,程序越简单也好,这样有利于检查问题到底在什么地方.
此号封存
谢谢雨天的回复.
已经调试一段时间了,问题一直没有解决.
这人很懒,什么都没留下
您有没有用简单的程序测试一下呢,这个怎么说呢,还是要调试,如果实在不行,您可以将您的硬件寄给我,我帮您调试。
此号封存
只有登录才能回复,可以选择微信账号登录