U盘插上时,发送指令读取U盘扇区:

Ch375WriteCmd( CMD_DISK_READ ); // 从USB存储器读数据块 delay_us(2); addr = (CPU_INT08U)iLbaStart; Ch375WriteData(addr ); // LBA的最低8位 addr = (CPU_INT08U)( iLbaStart >> 8 ); Ch375WriteData(addr);

addr = (CPU_INT08U)( iLbaStart >> 16 ); Ch375WriteData( addr );

addr = (CPU_INT08U)(iLbaStart >> 24); Ch375WriteData(addr); // LBA的最高8位

Ch375WriteData( iSectorCount ); // 扇区数

当iLbaStart=0时,可以正常读取,发送上述指令后:

会产生8次状态为USB_INT_DISK_READ的中断,(每次返回64字节,刚好512字节) 和1次状态为USB_INT_SUCCESS 的中断

当iLbaStart=1、2、3、4时也都正常。

但是当iLbaStart=5时,所有代码都不变,但是发送上述指令后,却无法产生任何中断。。。。。

请问这种问题,是软件问题呢?还是硬件问题?

当iLbaStart=6时,产生8次状态为USB_INT_DISK_READ的中断后,并没有产生USB_INT_SUCCESS,而是产生了一个状态码为0xFB的中断,从而进入出错状态。。。

具体代码请参展这个帖子:

/bbs/View.asp?S=101&I=37048