大家好,我在用lpc2122 ,調(diào)ch375,發(fā)現(xiàn)讀寫U盤的扇區(qū)是成功的,但是讀U盤文件總是不成功,有沒有相同經(jīng)歷的個(gè)位,指點(diǎn),幫忙。[Emot]27[/Emot][Emot]27[/Emot]
U盤寫成功的話,那你是不是直接就讀還是將文件關(guān)閉了在讀呢?如果直接在讀的話要將文件指針指向文件的開頭才可以讀,如果文件關(guān)閉了在讀的話,那你要先打開文件才可以讀,還有就是你不成功的時(shí)候返回的錯(cuò)誤代碼是多少??
strcpy( (char *)mCmdParam.Open.mPathName, "\\C51\\CH375HFT.C" ); /* 文件名,該文件在C51子目錄下 */ i = CH375FileOpen( ); /* 打開文件 */ if ( i == ERR_MISS_DIR || i == ERR_MISS_FILE ) { /* 沒有找到文件 */ /* 列出文件 */ if ( i == ERR_MISS_DIR ) pCodeStr = (UINT8 *)"\\*"; /* C51子目錄不存在則列出根目錄下的文件 */ else pCodeStr = (UINT8 *)"\\C51\\CH375*"; /* CH375HFT.C文件不存在則列出\C51子目錄下的以CH375開頭的文件 */ // LCD_printf( "List file %s\n", pCodeStr ); for ( c = 0; c < 255; c ++ ) { /* 最多搜索前255個(gè)文件 */ strcpy( (char *)mCmdParam.Open.mPathName, (char *)pCodeStr ); /* 搜索文件名,*為通配符,適用于所有文件或者子目錄 */ i = strlen( (char const *)mCmdParam.Open.mPathName ); /* 計(jì)算文件名長(zhǎng)度,以處理文件名結(jié)束符 */ mCmdParam.Open.mPathName[ i ] = c; /* 根據(jù)字符串長(zhǎng)度將結(jié)束符替換為搜索的序號(hào),從0到255 */ i = CH375FileOpen( ); /* 打開文件,如果文件名中含有通配符*,則為搜索文件而不打開 */ if ( i == ERR_MISS_FILE ) break; /* 再也搜索不到匹配的文件,已經(jīng)沒有匹配的文件名 */ if ( i == ERR_FOUND_NAME ) { /* 搜索到與通配符相匹配的文件名,文件名及其完整路徑在命令緩沖區(qū)中 */ // LCD_printf( " match file %03d#: %s\n", (unsigned int)c, mCmdParam.Open.mPathName ); /* 顯示序號(hào)和搜索到的匹配文件名或者子目錄名 */ continue; /* 繼續(xù)搜索下一個(gè)匹配的文件名,下次搜索時(shí)序號(hào)會(huì)加1 */ } else { /* 出錯(cuò) */ mStopIfError( i ); break; } } pCodeStr = (UINT8 *)"找不到/C51/CH375HFT.C文件\xd\n"; for ( i = 0; i != 255; i ++ ) { if ( ( FILE_DATA_BUF[i] = *pCodeStr ) == 0 ) break; pCodeStr++; } NewSize = i; /* 新文件的長(zhǎng)度 */ SecCount = 1; /* (NewSize+511)/512, 計(jì)算文件的扇區(qū)數(shù),因?yàn)樽x寫是以扇區(qū)為單位的 */ }
就是這樣了
是不是375 要設(shè)什么模式,比如06
你的文件夾下面有這個(gè)文件嗎?
有呀,在評(píng)估板上都能讀文件CH375HFT.C,可是在armlpc 2212,上就不行了,i = CH375FileOpen( ); /* 打開文件 */ 還回B3,急呀?。。?!
B3的錯(cuò)誤是指定路徑的某個(gè)子目錄沒有找到,可能是目錄名稱錯(cuò)誤,那有可能是你輸入的目錄路徑有點(diǎn)問題
有呀,在評(píng)估板上都能讀文件CH375HFT.C,可是在armlpc 2212,上就不行了
接著運(yùn)行,就會(huì)把U盤的分區(qū)給破壞了,要拿到windows下格式化,暈
怎么解決呢????
這個(gè)可能是你的編譯器設(shè)置沒設(shè)置好,給你發(fā)了完整的編譯工程過(guò)去了
完整的編譯工程,是可用了,但是只是io的形式,我改成總線的就不行了,可能是LPC2114不支持總線吧, i = CH375LibInit( ); 初始化CH375程序庫(kù)和CH375芯片,操作成功返回0x81?。。?!
譯器設(shè)置,很關(guān)鍵,總線的要用哪個(gè)呢??? ,我試了都不行??!
LPC2114支持總線
但我用,總線的工程摸版在lpc 2212下也無(wú)法使用呀! LPC2114以總線的方式,可以訪問ch375 。
2210好象支持總線方式,2212我不太清楚