急啊,CH376讀U盤文件后再創(chuàng)建文件,看不到文件

用CH376單獨(dú)讀文件或者創(chuàng)建文件寫入數(shù)據(jù),這兩種操作都正常,但是如果把這兩個(gè)操作連起來使用,先讀U盤上的文件,再新建文件,這樣U盤上新建的文件看不到,但是已經(jīng)占用了U盤的空間,不知道是什么引起的,本來做得差不多了,現(xiàn)在生出這樣的問題,真是郁悶。 我是用扇區(qū)方式讀寫文件,SPI通訊,程序也沒加什么東西,基本上是把例程搬過來使用,哪位大俠給指點(diǎn)一下,謝謝

這個(gè)估計(jì)是你流程上面有問題。建議你將詳細(xì)的流程發(fā)過來看下。U盤占用了空間說明FAT表被寫了。文件不存在說明目錄項(xiàng)沒有被寫。


哦,謝謝,我的程序是這樣的

// 要讀取的文件名 FileDataBuf[0]='1'; FileDataBuf[1]='2'; FileDataBuf[2]='3'; FileDataBuf[3]='4'; FileDataBuf[4]='.'; FileDataBuf[5]='T'; FileDataBuf[6]='X'; FileDataBuf[7]='T'; FileDataBuf[8]=0; // 文件名結(jié)束符

// 開始讀取文件 s = CH376FileOpen(&FileDataBuf[0]); if( s == USB_INT_SUCCESS ) // 打開文件成功 { CH376SecLocate( 0 ); // 讀取指針移到文件頭 while(cSecNum { CH376SecRead(FileDataBuf, 1, 0); // buf,需讀扇區(qū)數(shù),讀到扇區(qū)數(shù) cSecNum++; } } s = CH376FileClose( FALSE ); // 關(guān)閉文件

// 開始寫新文件 FileDataBuf[0]='8'; FileDataBuf[1]='8'; FileDataBuf[2]='8'; FileDataBuf[3]='8'; FileDataBuf[4]='.'; // 加文件擴(kuò)展名 FileDataBuf[5]='T'; FileDataBuf[6]='X'; FileDataBuf[7]='T'; FileDataBuf[8]=0; // 當(dāng)前文件名完整路徑的結(jié)束符

s = CH376FileOpen(FileDataBuf); if( s == USB_INT_SUCCESS ) // 打開文件成功 { CH376FileErase(FileDataBuf); // 原來有同名文件,先刪除再新建 } CH376FileCreate( NULL ); // 新建文件并打開,如文件存在則先刪除后再新建,不必再提供 // 文件名,剛才已經(jīng)提供給CH376FileOpen CH376SecLocate( 0 ); // 以扇區(qū)為單位移到文件頭部

for(iTemp=0;iTemp<512;iTemp++) FileDataBuf[iTemp]=0x37; // 寫入模擬數(shù)據(jù)

while(cSecNum{ CH376SecWrite( FileDataBuf, 1, NULL ); cSecNum++; }

// 將正確的當(dāng)前文件長(zhǎng)度寫入CH376內(nèi)存 CH376WriteVar32( VAR_FILE_SIZE, (UINT32)( SEC_NUM*DEF_SECTOR_SIZE + BYTE_REMAIN )); s = CH376SecWrite( FileDataBuf, 0, NULL ); s = CH376FileClose( TRUE );


s = CH376FileOpen(FileDataBuf); if( s == USB_INT_SUCCESS ) // 打開文件成功 { CH376FileErase(FileDataBuf); // 原來有同名文件,先刪除再新建 } CH376FileCreate( NULL ); // 新建文件并打開,如文件存在則先刪除后再新建,不必再提供 // 文件名,剛才已經(jīng)提供給CH376FileOpen CH376SecLocate( 0 ); // 以扇區(qū)為單位移到文件頭部

將前面打開文件部分去掉,直接這樣創(chuàng)建: i=CH376FileCreate( FileDataBuf); // 看下i返回的值是多少?


i=CH376FileCreate( FileDataBuf); 返回的是14啊,創(chuàng)建成功的。


您打開文件的名或者創(chuàng)建的文件名路徑有問題,在根目錄下的需要開頭以FileDataBuf=‘/’;


哦,確實(shí)是這個(gè)問題 但是我看編程指南里寫的‘ABC’是表示在當(dāng)前目錄操作,我在根目錄下操作文件應(yīng)該也是在當(dāng)前目錄的啊,也有可能是我斷章取義的錯(cuò)誤理解了,在進(jìn)入多級(jí)目錄下的文件夾以后,在這個(gè)文件夾下讀寫操作才算是當(dāng)前目錄。 但是以前在根目錄只要讀和寫不連續(xù)進(jìn)行,就可以成功,所以也一直沒有發(fā)現(xiàn)這個(gè)問題。 不管怎么說,問題解決了,多謝了


我也遇到這問題了 求幫助? QQ 994099840


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

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