求助,急--CH376与44BO:串口操作U盘问题

技术人员, 你好。

现在我的项目中,遇到一些问题,向你咨询一下: 1.情况 现在我使用的是CH376,通过异步用44B0去操作它; 我现在的状态是:已经把CH376和44B0的通讯调试完成,即能发命令控制CH376和接收到CH376返回的状态码和信息。 2.遇到的问题 1) 我试着去列举U盘中某个文件夹里面的问题,起初我文件夹里面放了三个文件,结果能列举出来。接着我增加U盘文件夹里面的文件个数,结果是文件都不能列举。然后我把U盘文件夹里面的文件删掉部分,包括起初列举成功的,结果文件都不能列举。

我尝试过格式化U盘,之后就都不能成功列举U盘文件夹里面的文件。

疑问:我想知道这是什么原因?这样的问题与什么有关呢?

2) 在第一个疑问中,能成功时,我都是使用同一个U盘的,当我使用其他的U盘时,则都会失败。 疑问:U盘的操作中,对于U盘是否有特殊要求的?具体是什么要求?

因项目急,望技术人员帮忙解答一下,特别是我的程序可以向什么方向修改。谢谢啊!

1. 如果文件都放在根目录下面,那么枚举可不可以成功,如果放在子目录下面,那么需要先依次打开多级目录,然后在枚举,枚举完成之后执行CH376EndDirInfo( ); /* 获取完FAT_DIR_INFO结构 */ 2. 对于不通过的U盘,执行到什么地方失败了,前面的初始化是否都通过


1. 如果列举根目录下的文件和文件夹,它只能枚举部分的文件和文件夹,不能全部都枚举成功。

2. 我放在子目录下,去打开那目录,我是直接用 CH376FileOpenPath()这个函数的,函数的 参数是子目录的完整路径,这个函数应该是达到你说的依次打开各级目录的效果吧?。

3.关于枚举,采用的方法是不是一定是你提到的那种呢,即EXAM13中的全盘枚举? 我现在用的不是EXAM13全盘枚举,而只是打开目录后,就 CH376ReadBlock( buf ); /* 读取枚举到的文件的FAT_DIR_INFO结构,返回长度总是sizeof( FAT_DIR_INFO ) */ 这样的方法是否可行?

4. 对于不成功的U盘,能mount成功,就是打不开想要的文件夹。

劳烦解答一下,谢谢。


下面附件是一个演示枚举磁盘目录下的文件的例程,比较简单。UploadImages/20119231519973.rar


只有登录才能回复,可以选择微信账号登录