CH376T操作U盘

CH376T在操作U盘的时候发现金属外壳的U盘能认到U盘,数据也显示存入成功,结果到电脑端打开的是没有显示写入的文件,然后用Sandisk的16G塑料外壳的U盘就能存入数据并在电脑上看到。不知道是怎么回事,有人有碰到过这个问题吗?金属外壳的2G,4G,16G都测试过,USB2.0和3.0的也都测试过都不行,相反Sandisk的塑料外壳的2.0的16G和3.0的32G都能正常使用,手头没有Sandisk的金属U盘,所以没做测试,这个难道跟品牌也有关系,金属外壳的是金士顿的,

希望厂家技术支持能帮忙解答下,解决不了得换STM32F105系列自带USB HOST的芯片了j_0065.gif


您好,首先确认一下U盘的文件系统是否都是FAT32的,其次如果说闪迪的U盘能够正常写入数据,那您操作376的代码应该是没有问题的,可以在FileClose(TRUE)文件关闭并刷新长度之后,调用一次在CH376DS2中的一个指令DISK_READY,其作用可以刷新U盘自身的数据缓冲区,同样的您也可以不用这条指令,将测试写入的数据量增加,目的是填满U盘自身缓冲区,是否也能将这个数据实际的写入U盘的FLASH中。


感谢回复,首先FAT32格式是正确的,文件操作完毕后要刷新长度吗?这个指令我没有操作,是怎么操作的,还有DISK_READY指令是文件关闭后再执行这个?还是数据写入成功在关闭文件前执行,

这个是否有例程可以提供看下,但是就是不知道U盘不同会导致有的写的进,有的写不进吗?闪迪的U盘质量好?还是兼容性会更好?


UINT8CH376SendCmdWaitInt( UINT8 mCmd )  /* 发出命令码后,等待中断 */

{

xWriteCH376Cmd( mCmd );

xEndCH376Cmd( );

return( Wait376Interrupt( ) );

}

通过这个函数发送吗?CH376SendCmdWaitInt(CMD_DISK_READY);


是的,等待中断到来,然后获取返回值


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