CH376文件定位出問題,之前就是成功的

現(xiàn)象如下: CH376芯片讀寫測(cè)試…… 固件版本號(hào)為:0x3 測(cè)試工作狀態(tài):成功

USB設(shè)備連接事件……U盤已插入 初始化USB存儲(chǔ)設(shè)備……成功 獲取USB存儲(chǔ)設(shè)備的磁盤物理容量……成功 總扇區(qū)數(shù)為:1034494 每個(gè)扇區(qū)字節(jié)數(shù)為:512 總存儲(chǔ)量為:505MB 獲取USB存儲(chǔ)設(shè)備的磁盤空間信息……成功 邏輯盤扇區(qū)數(shù)為:1032400(504MB) 剩余扇區(qū)數(shù)為:1008144(492MB) 文件系統(tǒng)類型:FAT32

創(chuàng)建一個(gè)TXT文件……成功! 需要寫入TXT的數(shù)據(jù)量為:24 TXT文本數(shù)據(jù)寫入成功! TXT文本創(chuàng)建并寫入完成!

2011-01-01 12:0:2 0.322266V 文件打開成功! 文件定位失敗--180 不知道為什么?

打開文件后,你讀一下數(shù)據(jù)看是否可以正確的讀出來。


這個(gè)定位也是時(shí)而好,時(shí)而不好?,F(xiàn)在的問題是,我動(dòng)態(tài)每次寫入三十個(gè)數(shù),用的是循環(huán),但是之后就是只顯示最新的一行,前面的居然全沖掉了。不知道為什么?


文件大小是否更新了?如果文件大小沒有變化,你怎么寫數(shù)據(jù)都只是看到最后一行。 你測(cè)試一下,循環(huán)寫30次數(shù)據(jù),每次寫30個(gè),然后關(guān)閉文件,要傳遞TURE,自動(dòng)更新文件長度,看看數(shù)據(jù)是否寫進(jìn)去了


我試了一下,文件還是沒有更新。 以下是主程序代碼,還請(qǐng)指教! while(1) { if(timer_flag == 500) //每秒采集一次AD數(shù)據(jù),并通過CH376將數(shù)據(jù)寫入TXT文本中 { printf("2011-01-01 12:%d:%d %d%d%d\n",second/60,second%60,uart_rx_temp[0],uart_rx_temp[1],uart_rx_temp[2]);//uart_rx_temp[0]得到的值為77

write_command_to_usb(SET_FILE_NAME);//送“設(shè)置文件名”命令 send_string_to_usb("/ED.TXT\0",11); //送文件名“AD.TXT”

write_command_to_usb(FILE_OPEN); //送“打開文件或目錄,枚舉文件和目錄”命令 while(ch375_intflag != 1); //等待中斷產(chǎn)生 ch375_intflag = 0; //清除CH376中斷標(biāo)志位 if(ch375_status == USB_INT_SUCCESS) //請(qǐng)求繼續(xù)寫入 { printf("文件打開成功!\n"); } else { printf("文件打開失敗--%d\n",ch375_status); while(1); }

write_command_to_usb(BYTE_LOCATE); //送“以字節(jié)為單位移動(dòng)當(dāng)前文件指針”命令 write_data_to_usb(0xff); //其后四個(gè)字節(jié)0xffffffff表示移動(dòng)文件指針到文件末尾 write_data_to_usb(0xff); write_data_to_usb(0xff); write_data_to_usb(0xff); while(ch375_intflag != 1); //等待中斷產(chǎn)生 ch375_intflag = 0; //清除CH376中斷標(biāo)志位 if(ch375_status == USB_INT_SUCCESS) //請(qǐng)求繼續(xù)寫入 { printf("文件定位成功!\n"); } else { printf("文件定位失敗--%d\n",ch375_status); while(1); } //往已有文件添加一串?dāng)?shù)據(jù) write_command_to_usb(BYTE_WRITE); //以字節(jié)為單位從當(dāng)前位置寫入數(shù)據(jù)塊 write_data_to_usb(34); //頭兩個(gè)字節(jié)是以低字節(jié)在前的16bit指示后續(xù)寫入的數(shù)據(jù)個(gè)數(shù) write_data_to_usb(0); ch375_intflag = 0; //清除CH375中斷標(biāo)志位 while(ch375_intflag != 1); //等待中斷產(chǎn)生 ch375_intflag = 0; //清除CH375中斷標(biāo)志位 if(ch375_status == USB_INT_DISK_WRITE) //請(qǐng)求繼續(xù)寫入 { write_command_to_usb(WR_REQ_DATA); //向內(nèi)部指定緩沖區(qū)寫入請(qǐng)求的數(shù)據(jù)塊 read_data_from_usb(); printf("需要寫入TXT的數(shù)據(jù)量為:%d\n",read_data_from_usb()); } else { printf("\nTXT文本數(shù)據(jù)寫入失敗--%d\n",ch375_status); while(1); }

for(i=0;i<30;i++) { write_data_to_usb(uart_rx_temp[i]); } send_string_to_usb("\r\n",4); //回車換行

write_command_to_usb(BYTE_WR_GO); //繼續(xù)字節(jié)寫 while(ch375_intflag != 1); //等待中斷產(chǎn)生 ch375_intflag = 0; //清除CH375中斷標(biāo)志位 if(ch375_status == USB_INT_SUCCESS) //請(qǐng)求繼續(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); //允許自動(dòng)更新文件長度 printf("TXT文本創(chuàng)建并寫入完成!\n");

while(timer_flag == 500); //防止每秒多次執(zhí)行該文本寫入操作 } } return 0; }


請(qǐng)求寫入34個(gè)字節(jié),為什么只寫入30個(gè)字節(jié)?也沒有檢查允許寫入的字節(jié)數(shù)。 請(qǐng)下載CH376EVT.ZIP,參考FILE_SYS.C


我實(shí)際要求實(shí)際寫入的是34個(gè)字節(jié)!也確實(shí)寫入了34個(gè)字節(jié)。主要問題是用while(1)循環(huán)寫入,可是只是寫入的最后的34個(gè)字節(jié),前面寫入的都沒有,應(yīng)該是被沖掉了。不知道為什么?這里關(guān)閉了文件也允許更新文件長度了呀,而且每次也都重新定位了的,怎么會(huì)不成功呢?最近一直在想,還請(qǐng)指教呀!


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

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