[求助]CH376文件內(nèi)寫數(shù)據(jù)失敗

s = mInitCH376Host(); /* 初始化CH376 */ mStopIfError(s);

s = CKECK_connect(); /* 檢查連接 */ mStopIfError(s);

s = CH376DiskMount(); /* U盤初始化 */ mStopIfError(s);

s = CH376DirCreate( "BB" ); mStopIfError(s);

s = CH376FileCreate( "TEST1.TXT" ); mStopIfError(s);

s = CH376FileOpen( "\TEST1.TXT" ); mStopIfError(s);

buf = &PutIn[0]; s = CH376ByteWrite( buf, sizeof(PutIn), NULL );

以上是調(diào)用程序的代碼。 運行過CH376FileOpen( "\TEST1.TXT" ) 返回0x14操作成功 運行s = CH376ByteWrite( buf, sizeof(PutIn), NULL );之后中斷返回0xB4(文件已經(jīng)關(guān)閉,如果需要使用應重新打開)

請問是什么原因?

CH376FileCreate之后文件已經(jīng)打開不需要調(diào)用:

s = CH376FileOpen( "\TEST1.TXT" ); mStopIfError(s);

你去掉那兩句試一下?


我之前沒用這個 s = CH376FileOpen( "\TEST1.TXT" ); mStopIfError(s);

返回中斷就是0xB4,我后來才加上的..


正確流程是不需要加的,出現(xiàn)這個錯誤是因為CH376寫入U盤的數(shù)據(jù)錯誤。 你格式化U盤試一下呢?


我試試


不行,還是中斷返回0xB4

UINT8 CH376ByteWrite( PUINT8 buff, int ReqCount, PUINT16 RealCount ) /* 以字節(jié)為單位向當前位置寫入數(shù)據(jù)塊 */ { UINT8 i,s; xWriteCH376Cmd( CMD2H_BYTE_WRITE ); /* 0x3C 主機文件模式: 以字節(jié)為單位向當前位置寫入數(shù)據(jù)塊 */ xWriteCH376Data( (UINT8)ReqCount ); xWriteCH376Data( (UINT8)(ReqCount>>8) ); // xEndCH376Cmd( ); if ( RealCount ) *RealCount = 0; while ( 1 ) { s = Wait376Interrupt( ); if ( s == USB_INT_DISK_WRITE ) /* 0x1E USB存儲器請求數(shù)據(jù)寫入 */ { s = CH376WriteReqBlock( buff ); /* 向內(nèi)部指定緩沖區(qū)寫入請求的數(shù)據(jù)塊,返回長度 */ xWriteCH376Cmd( CMD0H_BYTE_WR_GO ); // xEndCH376Cmd( ); buff += s; if ( RealCount ) *RealCount += s; } /* else if ( s == USB_INT_SUCCESS ) return( s );*/ /* 結(jié)束 */ else return( s ); /* 錯誤 */ } }

s = Wait376Interrupt( ); 在這里就返回0xB4 不能進入下面的if( s == USB_INT_DISK_WRITE )


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频