前段時間飛線效果不好,最近剛做了個板,用的是2407+375 但是現(xiàn)在出現(xiàn)個問題,這是我的讀扇區(qū)程序 unsigned char mReadSector( unsigned long iLbaStart, unsigned char iSectorCount, unsigned char *iBuffer ) /* iLbaStart 是準備讀取的線性起始扇區(qū)號, iSectorCount 是準備讀取的扇區(qū)數(shù), iBuffer 是存放返回數(shù)據(jù)的緩沖區(qū)的起址 */ { if ( mWaitReady( ) == FALSE ) return( FALSE ); mBufferPoint = iBuffer; /* 指向緩沖區(qū)起始地址 */ UdiskStatus = STATUS_WAIT; CH375_WR_CMD_PORT( CMD_DISK_READ ); /* 從USB存儲器讀數(shù)據(jù)塊 */ 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 ); /* 扇區(qū)數(shù) */ /* 如果是純中斷方式,那么可以做其它事情,中斷服務程序會讀取數(shù)據(jù) */ return( mWaitReady( ) ); }
主程序里寫mReadSector( 0x00, 5, *DATA_BUFFER ),單步執(zhí)行到if ( mWaitReady( ) == FALSE )就死在那里了,這是由什么引起的