求助,STM32并口與CH376讀優(yōu)盤(pán)文件讀不出數(shù)據(jù)!

我用STM32 I/O口模擬并口讀U盤(pán)CH376.TXT文件CheckCH376Exist() SetCH376Mode(0x06)CH376DiskConnect() CH376DiskMount() CH376OpenFile(buf)都正返回正確的狀態(tài),但是CH376ByteRead( )時(shí)返回的中斷狀態(tài)就是不是1DH,不能正常的讀到文件的數(shù)據(jù)?

那返回的錯(cuò)誤代碼是多少?你要說(shuō)明。


返回的錯(cuò)誤代碼是4BH。我還沒(méi)有讀數(shù)據(jù)為什么返回狀態(tài)就是4BH啊? 我看了PARA_SW.C修改了一下我的程序,前面的測(cè)試程序,還有初始化都對(duì),現(xiàn)在CH376OpenFile(buf)不能成功,返回?cái)?shù)據(jù)是69H,而且執(zhí)行CH376SetFileName(name)的時(shí)候輸入文件名看返回狀態(tài)也不是51H。 我在main()一開(kāi)始的地方先進(jìn)行了一下CH376ResetAll(),出現(xiàn)的問(wèn)題是有的時(shí)候U盤(pán)查上去不能出現(xiàn)中斷CheckCH376Exist() 等都不能返回正確的狀態(tài)有的時(shí)候是00H有的時(shí)候是22H。 strcpy( buf, "\\CH376.TXT\0" );在CH376OpenFile()中有一句是if ( name[0] == DEF_SEPAR_CHAR1 || name[0] == DEF_SEPAR_CHAR2 ) { CH376WriteVar32( 0x64, 0 ); }怎么解釋啊,看不明白 樓上大哥幫忙看看吧!


大哥們那位能幫忙解答一下??!


在CH376初始化完成之后,檢測(cè)到U盤(pán)連接之后,CH376DISKMOUNT()這個(gè)函數(shù)返回多少?你前面的錯(cuò)誤屬于非正常錯(cuò)誤,需要看下U盤(pán)初始化函數(shù)也就是CH376DISKMOUNT()函數(shù)返回多少?


不知道是什么緣故,在打開(kāi)之前先關(guān)閉一次文件,CH376ByteRead( )時(shí)返回的中斷狀態(tài)現(xiàn)在是1D了。CH376ReadBlock()這個(gè)函數(shù)能讀到文件的大小,不能讀到數(shù)據(jù),換了一個(gè)優(yōu)盤(pán)還是同樣的問(wèn)題,讀數(shù)據(jù)的時(shí)候讀到數(shù)組里面的值是文件大小的值,但是前面文件大小的值已經(jīng)讀過(guò)了,不明白! 還有PUINT8 buf 我用u8* buf 代替行嗎? /*****************讀文件*************************/ strcpy( buf, "\\YY.TXT\0" ); a = CH376OpenFile(buf); CH376FileClose( TRUE ); strcpy( buf, "\\YY.TXT\0" ); // a = CH376FileOpenPath(buf); a = CH376OpenFile(buf); if(a == USB_INT_SUCCESS) { for(i=0;i<30;i++) { buf[i]=0; } // CH376ReadBlock( buf ); CH376ByteRead( buf, 30, &RealCount ); } CH376FileClose( TRUE );/**/ 困擾中好幾天了!要崩潰了!望大哥們給解答一下!先謝謝了!


修改為: strcpy( buf, "\\YY.TXT" ); 試驗(yàn)一下。


strcpy( buf, "\\YY.TXT" );是打開(kāi)根目錄下的文件嗎。我是在U盤(pán)的打開(kāi)之后就建了一個(gè)YY.txt文件。 還是不行,u8 CH376ReadBlock( PUINT8 buf ) /* 從當(dāng)前主機(jī)端點(diǎn)的接收緩沖區(qū)讀取數(shù)據(jù)塊,返回長(zhǎng)度 */ { u8 s, l,i=0; u8 a[30]; CH376WriteCmd( 0x27 ); s = l = CH376ReadData(); /* 長(zhǎng)度 */ if ( l ) { do { *buf = CH376ReadData( ); //a[i] = CH376ReadData( ); buf ++; i++; } while ( -- l ); } return( s ); } 其中的l能返回正常的文件大小,但是buf里面就是沒(méi)有文件里面的數(shù)據(jù)。


建議你監(jiān)控下buf里面的數(shù)據(jù)是多少?還有按照這樣的復(fù)制方式來(lái)復(fù)制數(shù)據(jù): strcpy( (char *)buf,(const char *)"\\YY.TXT" );


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

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