CH376读U盘里的文件。文件较大,设置的buf[2048];读了2048个buf就通过串口发出,然后继续读下一个2048,直到文件全部读完。现在仅第一个2048能读出数据,以后读出的和第一次相同。程序如下:
u32 read_addr;
ee:
if(RealCount)
*RealCount=0;
xWriteCH376Cmd(CMD2H_BYTE_READ);
xWriteCH376Cmd((u8) ReqCount);
xWriteCH376Cmd((u8) ReqCount>>8);
while(1)
{
s=Wait376interrupt();
if(s==USB_INT_DISK_READ)
{
s=CH376ReadBlock(buf);
xWriteCH376Cmd(CMD0H_BYTE_RD_GO);
buf+=s;
if(RealCount)
*RealCount+=s;
}
else if(s==USB_INT_SUCCESS)
{
//串口发送buf,此处省
read_addr=read_addr+2048;
s=CH376ByteLocate(read_addr);
if(s!=USB_INT_SUCCESS)
return (s);
else
goto ee;
}
}
是不是CH376ByteLocate发得不对?