我用376在U盤里面建了個TXT文件,里面寫上內(nèi)容。但是每次都只能寫入一個字節(jié)。代碼都是移植的 main( ) { UINT8 s; UINT8 idata buf[64]; P1=0; mDelaymS( 100 ); /* 延時100毫秒 */ xWriteCH376Cmd( CMD_SET_USB_MODE ); /* 初始化CH376,設(shè)置USB工作模式 */ xWriteCH376Data(0x06); /* 模式代碼,自動檢測USB設(shè)備連接,代碼3用于SD卡 */ while ( 1 ) { while ( mWaitInterrupt( ) != USB_INT_CONNECT ); /* 等待U盤連接,SD卡模式下需要單片機自行檢測SD卡插拔 */ mDelaymS( 100); /* 延時等待U盤進(jìn)入正常工作狀態(tài) */ xWriteCH376Cmd( CMD_DISK_MOUNT ); /* 初始化U盤并測試是否就緒,實際是識別U盤的類型和文件系統(tǒng),在所有讀寫操作之前必須進(jìn)行此步驟 */ s = mWaitInterrupt( ); /* 等待中斷并獲取狀態(tài) */ if ( s != USB_INT_SUCCESS ) { /* 有的U盤一次初始化不成功,再試一次 */ mDelaymS( 100 ); /* 出錯重試 */ xWriteCH376Cmd( CMD_DISK_MOUNT ); /* 初始化磁盤并測試磁盤是否就緒 */ s = mWaitInterrupt( ); /* 等待中斷并獲取狀態(tài) */ }
CH376FileCreate("T.TXT");
/***********************寫內(nèi)容********************************/ strcpy( buf, "321\n 789\n" ); /* name=dat; l=strlen(dat); mDelaymS( 250 );
xWriteCH376Cmd(CMD2H_BYTE_WRITE);//寫入 xWriteCH376Data( (UINT8)l ); xWriteCH376Data( (UINT8)(l>>8) ); while (1) { s = mWaitInterrupt( ); if ( s == USB_INT_DISK_WRITE ) { s = CH376WriteReqBlock( name ); // 向內(nèi)部指定緩沖區(qū)寫入請求的數(shù)據(jù)塊,返回長度 xWriteCH376Cmd( CMD0H_BYTE_WR_GO ); name += s; } else { break; } // else if ( s == USB_INT_SUCCESS ) return( s );// 結(jié)束
} */ xWriteCH376Cmd( CMD_DISK_MOUNT ); /* 初始化U盤并測試是否就緒,實際是識別U盤的類型和文件系統(tǒng),在所有讀寫操作之前必須進(jìn)行此步驟 */ s = CH376ByteWrite( buf, strlen(buf), NULL ); /* 以字節(jié)為單位向當(dāng)前位置寫入數(shù)據(jù)塊 */ mStopIfError( s ); // printf( "Close\n" ); s = CH376FileClose( TRUE ); /* 關(guān)閉文件,對于字節(jié)讀寫建議自動更新文件長度 */ mStopIfError( s ); xWriteCH376Cmd(CMD1H_FILE_CLOSE);//關(guān)閉 xWriteCH376Data(0x01);
while ( mWaitInterrupt( ) != USB_INT_DISCONNECT ); /* 等待U盤拔出 */ mDelaymS( 250 ); } }