CH376文件不能正確打開!

創(chuàng)建了一個"/AD.TXT\0"的文件,可以寫數(shù)據(jù);但是關(guān)閉后再打開時候出現(xiàn)錯誤,

顯示的是:文件并沒有被正確打開



顯示的是:

創(chuàng)建一個TXT文件成功!

需要寫入TXT的數(shù)據(jù)量為:24

TXT文本數(shù)據(jù)寫入成功!

TXT文本創(chuàng)建并寫入完成!


文件打開成功!

文件定位失敗--180



我的文件setfilename程序:

void CH376SetFileName( alt_8 *Name )?

{

? ? alt_u8 ?i;?

? ? alt_8 ?c; ?

? ? for( i = 40; i != 0; --i )?

? ? {

? ? ? ? c = *Name;

? ? ? ? write_data_to_usb( c );

? ? ? ? if( c == 0 )?

? ? ? ? {

? ? ? ? ? ? break;

? ? ? ? }

? ? ? ? Name ++;

? ? }

}



主程序:

//新建一個名為AD.TXT的文件

? ? printf("\n創(chuàng)建一個TXT文件");

? ? write_command_to_usb(SET_FILE_NAME);//送“設(shè)置文件名”命令

? ? CH376SetFileName("/AD.TXT\0");

? ? write_command_to_usb(FILE_CREATE); ?//送“新建文件”命令

? ? while(ch375_intflag != 1); ?//等待中斷產(chǎn)生

? ? ch375_intflag = 0; ?//清除CH376中斷標(biāo)志位

? ? if(ch375_status == USB_INT_SUCCESS) //請求繼續(xù)寫入

? ? {

? ? ? ? printf("成功!\n");

? ? }

? ? else

? ? {

? ? ? ? printf("失敗--%d\n",ch375_status);

? ? ? ? while(1);

? ? }


? ? //往新建文件寫入一串?dāng)?shù)據(jù)“AD數(shù)據(jù)采集實(shí)時存儲:”

? ? write_command_to_usb(BYTE_WRITE); ? //以字節(jié)為單位從當(dāng)前位置寫入數(shù)據(jù)塊

? ? write_data_to_usb(24); ?

? ? write_data_to_usb(0);

? ? while(ch375_intflag != 1); ?//等待中斷產(chǎn)生

? ? ch375_intflag = 0; ?//清除CH376中斷標(biāo)志位

? ? if(ch375_status == USB_INT_DISK_WRITE) ?//請求繼續(xù)寫入

? ? {

? ? ? ? write_command_to_usb(WR_REQ_DATA); ?//向內(nèi)部指定緩沖區(qū)寫入請求的數(shù)據(jù)塊

? ? ? ? printf("需要寫入TXT的數(shù)據(jù)量為:%d\n",read_data_from_usb());

? ? }

? ? else

? ? {

? ? ? ? printf("\nTXT文本數(shù)據(jù)寫入失敗--%d\n",ch375_status);

? ? ? ? while(1);

? ? }


? ? //send_string_to_usb1("AD數(shù)據(jù)采集實(shí)時存儲:\r\n");?

? ? send_string_to_usb("AD數(shù)據(jù)采集實(shí)時存儲:\r\n",20+4); ? ? //送字符串“AD數(shù)據(jù)采集實(shí)時存儲:”

? ? write_command_to_usb(BYTE_WR_GO); ? //繼續(xù)字節(jié)寫

? ? while(ch375_intflag != 1); ?//等待中斷產(chǎn)生

? ? ch375_intflag = 0; ?//清除CH376中斷標(biāo)志位

? ? if(ch375_status == USB_INT_SUCCESS) //請求繼續(xù)寫入

? ? {

? ? ? ? printf("TXT文本數(shù)據(jù)寫入成功!\n");

? ? }

? ? else

? ? {

? ? ? ? printf("TXT文本數(shù)據(jù)寫入失敗--%d\n",ch375_status);

? ? ? ? while(1);

? ? }

? ? write_command_to_usb(FILE_CLOSE); ? //關(guān)閉當(dāng)前已經(jīng)打開的文件或目錄

? ? write_data_to_usb(1); ? //允許自動更新文件長度

? ? printf("TXT文本創(chuàng)建并寫入完成!\n\n"); ?

? ? ? ? ? ??

? ? ? ? ? ? write_command_to_usb(SET_FILE_NAME);//送“設(shè)置文件名”命令?

? ? ? ? ? ? CH376SetFileName("/AD.TXT\0");

? ? ? ? ? ? write_command_to_usb(FILE_OPEN); ? ?//送“打開文件或目錄,枚舉文件和目錄”命令

? ? ? ? ? ? while(ch375_intflag != 1); ?//等待中斷產(chǎn)生

? ? ? ? ? ? ch375_intflag = 0; ?//清除CH376中斷標(biāo)志位

? ? ? ? ? ? if(ch375_status == USB_INT_SUCCESS) //請求繼續(xù)寫入

? ? ? ? ? ? {

? ? ? ? ? ? ? ? printf("文件打開成功!\n");

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? printf("文件打開失敗--%d\n",ch375_status);

? ? ? ? ? ? ? ? while(1);

? ? ? ? ? ? }



我試了一下,

write_command_to_usb(SET_FILE_NAME);//送“設(shè)置文件名”命令?

? ? ? ? ? ? CH376SetFileName("/AD.TXT\0");

? ? ? ? ? ? write_command_to_usb(FILE_OPEN); ? ?//送“打開文件或目錄,枚舉文件和目錄”命令

改成:

write_command_to_usb(SET_FILE_NAME);//送“設(shè)置文件名”命令?

? ? ? ? ? ? CH376SetFileName("/A.TXT\0");

? ? ? ? ? ? write_command_to_usb(FILE_OPEN); ? ?//送“打開文件或目錄,枚舉文件和目錄”命令

顯示的也是:

文件打開成功!


能解釋一下是為什么么?



你的設(shè)置文件名有問題,寫入文件名的時候你寫多了,應(yīng)該加上判斷條件if ( c == '\' || c == '/' ) c = 0; //強(qiáng)行截止文件名。


試了一下用下面的程序:

void CH376SetFileName( alt_8 *Name )?

{

? ? alt_8 ?c; ?

????c = *Name;

? ? write_data_to_usb( c );

? ? while ( c ) {

? ? ? ? Name ++;

? ? ? ? c = *Name;

? ? ? ? if ( c == 0x2F || c == 0x5C ) c = 0; ?/* 強(qiáng)行將文件名截止 */

? ? ? ? write_data_to_usb( c );

? ? }

}

還是出現(xiàn)同樣的現(xiàn)象!


我們的函數(shù)在FILE_SYS.C里面有現(xiàn)成的函數(shù),你試下有沒有問題。


試了,我用的就是貴公司提供的例程。

文件可以創(chuàng)建成功,創(chuàng)建成功后進(jìn)行寫數(shù)據(jù)、定位都可以。但是關(guān)閉之后就不能再打開了,不知道為什么?


現(xiàn)在發(fā)現(xiàn)一個問題,如果前面關(guān)閉文件后,不更新文件長度,那么就能打開文件定位成功。

? ? write_command_to_usb(FILE_CLOSE); ? //關(guān)閉當(dāng)前已經(jīng)打開的文件或目錄

? ? write_data_to_usb(0); ? //允許自動更新文件長度

? ? printf("TXT文本創(chuàng)建并寫入完成!\n"); ?



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

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