ch376存csv格式文件

存的時候出現(xiàn)亂碼,以及格式不對。現(xiàn)在程序存的是hello word,但存進(jìn)去的還有之前程序存的內(nèi)容。

有沒有遇到過這個情況的大神呀



case CH376_STATU_5_WaitCMD:

????if(CH376_isTimeOut()){

????????if(ch376.statu_prv == CH376_STATU_4_DiskMount){

????????????????CH376_STATU_Jump(CH376_STATU_6_FileOpen,TIMEOUT_200MS);//檢查后直接打開文件

????????????????ch376.Try_Ctr = 0;

?????????}else if(ch376.statu_prv == CH376_STATU_8_FileClose){

????????????????if(1){//有讀取指令

????????????????????CH376_Printf("CH376---sta5--New CMD\n");//

????????????????? ? CH376_STATU_Jump(CH376_STATU_6_FileOpen,TIMEOUT_200MS);??

?????????????????}

??????????}

????}

break;

case CH376_STATU_6_FileOpen:

????if(CH376_isTimeOut()){

????????ch376.Try_Ctr ++;

????????CH376_Printf("CH376---sta6--打開文件\n");//打開文件

????????Date_File_to_String(Str);

????????sys.u8_test = CH376FileOpenPath(Str);//查看文件存不存在

????????if(sys.u8_test == 0x22){

????????????????if(ch376.Try_Ctr <= 5){

????????????????CH376_STATU_Jump(CH376_STATU_6_FileOpen,TIMEOUT_200MS);

????????????????break;

????????????????}

????????}

????????if(ERR_MISS_FILE == sys.u8_test){

????????? ? sys.u8_test = CH376FileCreatePath(Str);

????????????CH376_STATU_Jump(CH376_STATU_7_ByteWrite,TIMEOUT_200MS);

????????????ch376.Try_Ctr = 0;

????????}else{

????????????sys.u8_test = CH376ByteLocate(0xFFFFFFFF);//移動文件指針到文件末尾

????????????CH376_STATU_Jump(CH376_STATU_7_ByteWrite,TIMEOUT_200MS);

????????????ch376.Try_Ctr = 0;

????????}

????}

break;

case CH376_STATU_7_ByteWrite:

? ? ? ? if(CH376_isTimeOut()){

? CH376_Printf("CH376---sta7--寫入數(shù)據(jù)\n");//打開文件??

? sys.u8_test=CH376ByteWrite("Hello wold!",sizeof("Hello wold!"),NULL); // 以字節(jié)為單位向當(dāng)前位置寫入數(shù)據(jù)塊?

? ? ? ? ? if(sys.u8_test == 0x22){

? ? ? ? ? ? if(ch376.Try_Ctr <= 5){

? ? ? ? ? ? ? num_flag--;?

? ? ? ? ? ? ? CH376_STATU_Jump(CH376_STATU_7_ByteWrite,TIMEOUT_200MS);

? ? ? ? ? ? ? break;

? ? ? ? ? ? }

? ? ? ? ? }

? ? ? ? ? CH376_STATU_Jump(CH376_STATU_8_FileClose,TIMEOUT_200MS);

? ? ? ? ? ch376.Try_Ctr = 0;

? ? ? ? }

break;

case CH376_STATU_8_FileClose:

????if(CH376_isTimeOut()){

????????CH376_Printf("CH376---sta8--關(guān)閉文件,并等待下次命令\n");//打開文件

????????sys.u8_test=CH376FileClose(TRUE);// 關(guān)閉文件,對于字節(jié)讀寫建議自動更新文件長度?

????????if(sys.u8_test == 0x22){

????????????if(ch376.Try_Ctr <= 5){

????????????????CH376_STATU_Jump(CH376_STATU_8_FileClose,TIMEOUT_200MS);

????????????????break;

????????????}

????????}

????????CH376_STATU_Jump(CH376_STATU_5_WaitCMD,TIMEOUT_200MS);

????}

break;

default:

break;

}

image.png

您好,可以看一下BYTE_WRITE函數(shù)最后一個參數(shù)返回的實(shí)際寫入長度每次是不是都一樣,還有這個是每一個操作函數(shù)本身,無法看到外部調(diào)用邏輯。

通常一個文件在打開之后,多次寫入之間不需要反復(fù)的開關(guān)文件,可以連續(xù)寫入。

文件寫入結(jié)束之后調(diào)用FILE_CLOSE,完成之后可以在調(diào)用手冊2中的DISK_READY命令用來將U盤中數(shù)據(jù)進(jìn)行真正的刷新。

針對這個出錯的文件,可以用支持HEX形式查看的軟件看一下這個文件具體的數(shù)據(jù)組成是怎么樣,可以用來分析代碼和376的行為


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

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