CH378芯片SD数据拷贝至USB问题,请各位帮忙,谢谢

目前SD、U盘均可正常读写数据

SD拷贝到U盘时,刚开始是自己想法:复制数据过程中,重新对SD和U盘进行模式设置、是否插入、是否准备就绪进行检测,该方法已经实现,但是因为U盘准备就绪太慢(卡在等待中断那里),导致1.4M的文件拷贝大约需要20分钟,(中间延时及串口打印会耗时间,但去掉也不会优化多少,主要是U盘准备就绪太慢)这是绝对不行的,后来,参考了以下两个帖子及例程:

/bbs/thread-64535-1.html

/bbs/thread-51696-1.html

复制数据流程:

       初始U盘并等待U盘准备就绪->初始化SD卡并等待SD准备就绪->打开文件->读取SD中2K数据->复位CH378,切换至USB模式(此处只进行模式切换,返回值0x51)->建立文件并写入2K数据OK->切换为SD模式(同样只进行模式切换,返回值0x51)->打开文件(此处报错,返回值0x1F)->读取2K数据...

   如果把上述流程“复位CH378,切换至USB模式”改为“切换至USB模式”(去掉复位CH378),则在下一步建立文件时就会报错,同样返回值0x1F。

   在上述流程中"切换为SD模式"前增加复位CH378步骤,对上述两个错误无影响,上述流程同样会报错

   

    目前卡在这里好几天了,第一个方案时间太长,已经放弃,最终会使用模式切换的方案,但上述问题一直困扰着我,请版主及各位朋友,如果有这方面的经验,请不吝赐教,谢谢!

你好:


378内置文件系统库,在进行文件操作时会保证一些信息,你在U盘和sd模式之间切换。两种设备各种文件系统内保存的变量时不一样的,尤其是内部操作的文件指针。例如你上述描述,在USB模式下写入文件后,文件指针还处于当前文件系统文件尾部位置,你在操作SD,此时sd的更目录位置和USB根目录位置的信息是不一样的,但内部是通过一个变量记录,这样操作后切换模式不一定成功。

上述步骤是错误的。你必须保存sd和usb枚举(初始化)后的变量信息,在操作某一设备时,需确保信息匹配。


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