现在发现CH376有一个问题:
好多台机器现象都一样。一个CH376读写U盘,前一段时间还好好的,但是用了一段时间后程序读那个U盘后CH376返回U盘满的错误码,这是怎么回事呢?好多台机器现象一样。
但是我把U盘在电脑上格式化一次,再插到机器上,CH376又能识别了,且能成功读写。
这是怎么回事呢?
请厂家给个回复吧
补上硬件连接图:
现在发现CH376有一个问题:
好多台机器现象都一样。一个CH376读写U盘,前一段时间还好好的,但是用了一段时间后程序读那个U盘后CH376返回U盘满的错误码,这是怎么回事呢?好多台机器现象一样。
但是我把U盘在电脑上格式化一次,再插到机器上,CH376又能识别了,且能成功读写。
这是怎么回事呢?
请厂家给个回复吧
补上硬件连接图:
问下你的文件系统是哪个文件系统?如果是FAT32文件系统的话,那么建议你把这个U盘的第2个扇区的数据贴出来看下。或者将你报告磁盘满的U盘寄一个过来我们分析下原因。
U盘的文件系统是fat32的
hcn你好,我准备把U盘寄过来
地址和收件人写哪里
你使用WINHEX软件看下第1号扇区的数据看下是多少?默认从第0号扇区开始。
地址已经发到你的邮箱。这个可能是第1号扇区的数据被修改了。你可以格式化成FAT16看是否还有这个现象?
嗯,有问题的U盘在客户哪里 暂时不能用winhex查看
我先让他们格式化成fat16格式的试试
请问这个问题和我的硬件连接有关系吗???????
如果要寄给我这个U盘千万别格式化。否则就看不到现象了。
嗯,我用4G的U盘,4G的U盘无法格式化成fat16啊
还有一个现象,出问题的U盘,有的电脑把它格式化了也不行,但是另一个电脑格式化后就可以了
我的邮箱里没有收到地址啊
有时也返回U盘无效的错误码
你拿一个2G的U盘格式化成FAT16你测试下看还是否出现这个问题。估计是U盘的第1号扇区被改写掉了。
现在U盘的格式就是FAT的
我发现质量不好的U盘怎么格式化都无法识别,但是电脑可以读写
所谓的无法识别是什么意思?CH376无法初始化这个U盘还是其他的?
下面是我的代码,请查看
Open_USB;//输出低,给USB供电,2012-11-29 delay_nms(178);//非常重要的延时,延时不够或不延时会造成U盘无法识别等故障,2012-10-15 usb_status=mInitCH376Host();//MCU和CH376芯片间的通信,和U盘无关,2012-10-04 usb_status=CH376DiskConnect();delay_nms(66); usb_status=CH376DiskConnect(); if(usb_status ==USB_INT_SUCCESS) { //对于检测到USB设备的,最多等待10*50mS for (u8 s = 0; s < 10; s ++ ) { //最长等待时间,10*50mS mDelaymS( 88 ); if ( CH376DiskMount( ) == USB_INT_SUCCESS )//初始化磁盘并测试磁盘是否就绪 { break; } } usb_status=CH376DiskMount( ); if(usb_status !=USB_INT_SUCCESS)//如果CH376DiskMount返回的值不是USB_INT_SUCCESS,则说明U盘无效 { //U盘无效 } else if(usb_status ==USB_INT_SUCCESS) { //查询磁盘剩余空间信息,扇区数 usb_status= CH376DiskQuery( (PUINT32)buf ); mDelaymS( 88 ); usb_status=*(PUINT32)buf / ( 1024 / DEF_SECTOR_SIZE );
if(usb_status < 23)//如果剩余的空间小于23KB,则U盘满了 { //U盘满了 } else { //进入正常读写U盘程序 } } } else//U盘未连接 { //U盘未连接 }