我要寫入一段數(shù)據(jù),比如說這樣的 2013.05.31 09:55:28 2013.05.31 09:55:29 2013.05.31 09:55:29 2013.05.31 09:55:29 2013.05.31 09:55:30 2013.05.31 09:55:30 2013.05.31 09:55:31 2013.05.31 09:55:31 2013.05.31 09:55:31 2013.05.31 09:55:32 2013.05.31 09:55:32 但是我現(xiàn)在的情況是必須得在while(1)里面一直初始化CH376才可以做到這種效果,也就是說必須得在每次s=CH376DISKConnect()函數(shù)前面都得加上一句s=mInitCH376Host()才可以做到,如果不加的話始終都只有一句2013.05.31 09:55:32,那就是U盤在一直被初始化嗎,我看這樣寫的時候U盤一直在閃,但是U盤插電腦上只是閃一會就不閃了,怎么解決?。恐x謝
初始化只是在芯片上電的時候在diskconnect之前做一次,不需要在while(1)里做,因為電腦寫的比較快所以閃一會就不閃了。
可是我之前是上電的時候初始化的,在while(1)的外面,可是如果在外面的就只能寫入一次啊,就只是這樣的,2013.05.31 09:55:32,只能顯示最后一次更新的數(shù)據(jù),前面的數(shù)據(jù)不會保留啊,所以U盤就一直在閃,怎么解決啊?
你是不是每次寫的時候沒有偏移所以把之前的數(shù)據(jù)覆蓋掉了,只寫了最后面一組數(shù)據(jù)2013.05.31 09:55:32
我寫了這一段的,應(yīng)該是有了這段會自動跳到文件末尾的吧? s=CH376FileOpen(TEXT.TXT) if(s==USB_INT_SUCCESS) { s=CH376GetFileSize(); s=CH376ByteLocate(0xFFFFFFFF); }
再問下,這樣在while(1)里面一直mInitCH376Host(),會對U盤壽命有影響的嗎,還有個問題,CH376DiskConnect()最后讀出的值不管U盤插沒插上,正常情況下是不是讀出的值都是USB_INT_SUCCESS?只有當(dāng)CH376DiskMount()之后才是真正初始化檢測到了U盤的存在?
四樓的程序只是在打開文件的時候跳到文件名為,寫的時候也需要調(diào)用。CH376DiskConnect()只有在檢測磁盤連接的時候才會返回USB_INT_SUCCESS,另外CH376DiskMount是檢測磁盤是否準(zhǔn)備就緒類似于初始化U盤,在讀寫之前必須操作。
那就是在每次字節(jié)寫數(shù)據(jù)的前面都要加上這兩句嗎?我試了,一樣的啊,還是會覆蓋? s=CH376GetFileSize(); s=CH376ByteLocate(0xFFFFFFFF);
那你再寫一組長度超過原來的數(shù),看看數(shù)據(jù)是追加還是覆蓋?
還是被覆蓋了啊啊啊啊啊,在Bytewrite前面寫這兩句為什么每次讀取的filesize都是等于0? s=CH376GetFileSize(); s=CH376ByteLocate(0xFFFFFFFF);
如果你每次讀取的長度都為0,相當(dāng)于每次寫進(jìn)去都沒有更新文件長度,當(dāng)然會出現(xiàn)你說的現(xiàn)象。那你你每次寫完都關(guān)閉一下文件s = CH376FileClose( TRUE ); 更新一下長度。
關(guān)閉了啊,我是在最后寫完了之后關(guān)閉的,長度最后還是更新了的吧,我是這樣寫的 writebyte了之后getsize了下,然后修改了下創(chuàng)建時間,就把fileclose了s = CH376FileClose( TRUE ); 還是必須的minithost(),不然還是不行,寫上這句在while(1)里面應(yīng)該沒多大影響吧?