前段时间飞线效果不好,最近刚做了个板,用的是2407+375 但是现在出现个问题,这是我的读扇区程序 unsigned char mReadSector( unsigned long iLbaStart, unsigned char iSectorCount, unsigned char *iBuffer ) /* iLbaStart 是准备读取的线性起始扇区号, iSectorCount 是准备读取的扇区数, iBuffer 是存放返回数据的缓冲区的起址 */ { if ( mWaitReady( ) == FALSE ) return( FALSE ); mBufferPoint = iBuffer; /* 指向缓冲区起始地址 */ UdiskStatus = STATUS_WAIT; CH375_WR_CMD_PORT( CMD_DISK_READ ); /* 从USB存储器读数据块 */ CH375_WR_DAT_PORT( (unsigned char)iLbaStart ); /* LBA的最低8位 */ CH375_WR_DAT_PORT( (unsigned char)( iLbaStart >> 8 ) ); CH375_WR_DAT_PORT( (unsigned char)( iLbaStart >> 16 ) ); CH375_WR_DAT_PORT( (unsigned char)( iLbaStart >> 24 ) ); /* LBA的最高8位 */ CH375_WR_DAT_PORT( iSectorCount ); /* 扇区数 */ /* 如果是纯中断方式,那么可以做其它事情,中断服务程序会读取数据 */ return( mWaitReady( ) ); }
主程序里写mReadSector( 0x00, 5, *DATA_BUFFER ),单步执行到if ( mWaitReady( ) == FALSE )就死在那里了,这是由什么引起的