使用ch375 串口模式讀寫u盤 , 前面返回碼 都正確, 到了 i = CH375FileOpen( ); /* 打開(kāi)文件 */ 這一步返回碼 0x1f ,請(qǐng)問(wèn)什么問(wèn)題啊?! 換了幾個(gè)牌子的 u盤, 能看見(jiàn)u盤指示燈狂閃 一會(huì)兒...
DiskReady能正常通過(guò)嗎?還是循環(huán)5次才過(guò)去的?文件名一定要大寫,且是8+3的格式.
for ( i = 0; i < 5; i ++ ) //有的U盤總是返回未準(zhǔn)備好,不過(guò)可以被忽略 { mDelaymS( 100 ); if ( CH375DiskReady( ) == ERR_SUCCESS ) { break; /* 查詢磁盤是否準(zhǔn)備好*/ } else { while (1); } } mCopyCodeStringToXRAM( mCmdParam.Open.mPathName, "\\MY_ADC.TXT" ); /* 文件名,該文件在根目錄下 */
SCM 回答下啊?!1
按你程序的流程,DiskReady應(yīng)該是通過(guò)的,請(qǐng)檢查: (1)DiskBaseBuf能否正常讀寫,連續(xù)寫入數(shù)據(jù),然后連續(xù)再讀出,對(duì)比數(shù)據(jù)是否相同。 (2)接口子程序中的延時(shí),命令之后延時(shí)1.5uS,數(shù)據(jù)之后延時(shí)0.6uS,把三個(gè)讀寫函數(shù)貼出來(lái),
i = CH375FileOpen( ); /* 打開(kāi)文件 */ ...這兒 i= 0x1f
if ( i == ERR_SUCCESS ) { /* 文件存在并且已經(jīng)被打開(kāi),移動(dòng)文件指針到尾部以便添加數(shù)據(jù) */ // printf( "File size = %ld\n", CH375vFileSize ); /* V1.5以上子程序庫(kù)在成功打開(kāi)文件后,全局變量CH375vFileSize中是文件當(dāng)前長(zhǎng)度 */ // printf( "Locate tail\n" );
P1_0 = 1; mCmdParam.ByteLocate.mByteOffset = 0xffffffff; /* 移到文件的尾部 */ i = CH375ByteLocate( ); mStopIfError( i ); } else if ( i == ERR_MISS_FILE ) { /* 沒(méi)有找到文件,必須新建文件 */ LED_WR_ACT( ); /* 寫操作 */ //P1_0 = 1; // printf( "Create\n" ); // mCopyCodeStringToXRAM( mCmdParam.Create.mPathName, "/MY_ADC.TXT" ); /* 文件名,該文件在根目錄下,剛才已經(jīng)提供給CH375FileOpen */ i = CH375FileCreate( ); /* 新建文件并打開(kāi),如果文件已經(jīng)存在則先刪除后再新建 */ mStopIfError( i ); } else{mStopIfError( i ); } /* 打開(kāi)文件時(shí)出錯(cuò) */
檢查一下磁盤緩沖區(qū)是否可以正常讀寫?使用的串口波特率是多少?
串口 4800
測(cè)試 xWriteCH375Cmd(CMD_CHECK_EXIST); xWriteCH375Data(0x55); mDelay1_2uS( ); i = xReadCH375Data(); 能通過(guò).. 返回 0xAA