CH376DiskReadSec读扇区失败

uint8 UDInit(void) { uint8 flag=false; uint8 s;

WDG_Reload();

PrintFmt("检测CH376连接的U盘...\r\n");

if((s=mInitCH376Host())==USB_INT_SUCCESS) { OSTimeDlyHMSM(0, 0, 0, 500); WDG_Reload(); if((s=CH376DiskConnect())==USB_INT_SUCCESS) { uint8 i; for(i=0; i<9; i++) { OSTimeDlyHMSM(0, 0, 0, 500); WDG_Reload(); if((s=CH376DiskMount())==USB_INT_SUCCESS) { flag=true; break; } else if (s == ERR_DISK_DISCON) { break; } WDG_Reload(); if((CH376GetDiskStatus()>=DEF_DISK_MOUNTED)&&(i>=5)) { flag=true; break; } } if (s == ERR_DISK_DISCON) { PrintFmt("检测到CH376连接的U盘断开\r\n"); flag=false; } WDG_Reload(); if (CH376GetDiskStatus() < DEF_DISK_MOUNTED) { PrintFmt("检测到CH376挂载U盘失败\r\n"); flag=false; } } else { PrintFmt("检测到CH376连接U盘失败\r\n"); } } else { PrintFmt("检测到CH376芯片失败\r\n"); }

if(flag) { PrintFmt("检测到CH376挂载U盘成功\r\n"); }

return flag; }

3.3v arm和ch376通过spi连接, U盘挂载成功后循环调用CH376DiskReadSec读取连续扇区的数据,可CH376DiskReadSec常常读失败,失败返回状态为0x1f或者0x17

怎么回事

换了u盘,发现其他几个u盘都可以,郁闷!


U盘连接之后一定要保证 U盘两端的电压在5V, D+在3.3V左右,D-在0V左右。


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