我在用CH375B向U盤保存數(shù)據(jù)的時(shí)候,發(fā)現(xiàn)我的比如叫123456789ABCDE.FGH的文件成了12345678.9AB了。 怎么樣使用長(zhǎng)文件名呢?
我用的ATMEGA128,CH375B工作在3.3V狀態(tài) 用的WINAVR編譯器
我們的庫暫時(shí)不支持此功能,但是可以在外面增加,我們有在51下面的關(guān)于長(zhǎng)文件名的例子程序.發(fā)郵件到我們技術(shù)支持信箱,我們發(fā)給你.tech@wch.cn
那么有沒有在根目錄下面新建文件夾的功能呢?
可以根目錄下新建,也可以在子目錄下新建
如何新建呢?可以給個(gè)示例不?庫里哪個(gè)函數(shù)呢? 可以枚舉根目錄下的文件夾嗎?
(1)庫里沒有直接的函數(shù),需另增加部分程序,參考MCS51 FILELIB4庫下的EXAM9 (2)可以,只要調(diào)用CH375EnumerFile()時(shí)的參數(shù)為子目錄名稱即可,注:此時(shí)返回值為ERR_OPEN_DIR。
試了一下寫U盤的速度,發(fā)現(xiàn)并沒有你們說的那么快,或者說相當(dāng)?shù)穆? 我用的AVR的庫,RAM空間還剩余很多,而我現(xiàn)在速度遠(yuǎn)遠(yuǎn)不夠 請(qǐng)問有什么方式提高速度的,比如說哪個(gè)參數(shù)設(shè)置大一點(diǎn)就可以,或者別的什么方式 我用的下面這個(gè),不明白為什么你們把MAX_BYTE_IO定成29 DISK_BASE_BUF_LEN設(shè)定的2048 while( 1 ) { /* 分多次寫入文件數(shù)據(jù) */ for ( i=0; i c = *pCodeStr; mCmdParam.ByteWrite.mByteBuffer[i] = c; if ( c == 0 ) break; /* 源字符串結(jié)束 */ pCodeStr++; } if ( i == 0 ) break; /* 源字符串結(jié)束,完成寫文件 */ mCmdParam.ByteWrite.mByteCount = i; /* 寫入數(shù)據(jù)的字符數(shù),單次讀寫的長(zhǎng)度不能超過MAX_BYTE_IO,第二次調(diào)用時(shí)接著剛才的向后寫 */ i = CH375ByteWrite( ); /* 向文件寫入數(shù)據(jù) */ mStopIfError( i ); }
字節(jié)方式本身速度就很慢,提高速度必須以扇區(qū)方式,且每次寫30K(每個(gè)U盤不同,通常是U盤Flash的一個(gè)塊大小)的大塊數(shù)據(jù)時(shí),速度最快
你是以字節(jié)方式寫的速度當(dāng)然慢了,你可以把上面的函數(shù)改成扇區(qū)方式讀寫,例子程序可以參考51下的EXAM1
MAX_BYTE_IO不能超過255,DISK_BASE_BUF_LEN不能小于一個(gè)扇區(qū)的大小,有部分U盤為大扇區(qū)的,為保證兼容性所以將DISK_BASE_BUF_LEN設(shè)為2048. 按照扇區(qū)讀寫,如果RAM足夠大的話,一般設(shè)置FILE_DATA_BUF為16個(gè)扇區(qū)的倍數(shù),速度相對(duì)快一點(diǎn).這是U盤本身的特性決定的.
扇區(qū)讀寫的方式在哪里呢?沒有找到,那個(gè)51的例子里太亂了,可以貼一段上來嗎?麻煩你們了
EXAM0: C示例源程序,USB主從模塊切換,可以讀寫U盤,也可以連接計(jì)算機(jī)通訊 EXAM1: C示例源程序,查詢方式,單DPTR復(fù)制 EXAM2: C示例源程序,中斷方式,雙DPTR復(fù)制 EXAM6: C示例源程序,查詢方式,單DPTR復(fù)制,以字節(jié)為單位讀寫文件,沒有文件緩沖區(qū) EXAM7: C示例源程序,查詢方式,以字節(jié)為單位讀寫文件,沒有文件緩沖區(qū),保存ADC數(shù)據(jù)到U盤 EXAM8: C示例源程序,查詢方式,以扇區(qū)為單位讀寫文件,保存ADC數(shù)據(jù)到U盤 EXAM9: C示例源程序,查詢方式,以扇區(qū)為單位讀寫文件(目錄),創(chuàng)建子目錄 EXAM10: C示例源程序,查詢方式,處理文件目錄信息,修改文件名,設(shè)置文件創(chuàng)建日期和時(shí)間 EXAM11: C示例源程序,查詢方式,處理小寫字母及長(zhǎng)文件名,支持長(zhǎng)文件名創(chuàng)建/打開/刪除等 EXAM12: C示例源程序,查詢方式,演示檢查U盤是否寫保護(hù)以及安全移除U盤等 EXAM13: C示例源程序,查詢方式,演示快速枚舉搜索整個(gè)U盤或者當(dāng)前目錄下的所有文件等 其實(shí)每個(gè)示例程序開頭都有一段注釋說明