使用CH376讀寫U盤,創(chuàng)建文件后,不進行任何操作,直接關(guān)閉文件,文件頭部總會有一個字節(jié)的數(shù)據(jù),調(diào)整過驅(qū)動延時參數(shù),使用多個U盤(威剛*1,憶捷*1,金士頓*2,閃迪*2,PNY讀卡器*1,SSK讀卡器*1)測試過,不論如何修改代碼,只有威剛的哪一個U盤沒有問題,其他U盤都有問題
核心代碼如下:
CH376FileCreate((PUINT8)"1.TXT");
CH376FileClose(TRUE);
發(fā)現(xiàn)有人遇到過,但是沒有解決方案,
http://www.findthetime.net/bbs/thread-62916-1.html
請教有人遇到過么,是兼容性不好還是程序BUG,謝了,調(diào)了個把周都是這樣
/*****************************************************************************************/
仔細看了下,原因已找到,CH376創(chuàng)建的文件默認大小為1,現(xiàn)在的問題是,可否直接通過修改
FAT_DIR_INFO把文件大小修改為0,我已經(jīng)測試了下面的代碼,但是不知是否有隱患,煩請貴公司
技術(shù)告知
/* 讀取當(dāng)前文件的目錄信息FAT_DIR_INFO,將相關(guān)數(shù)據(jù)調(diào)到內(nèi)存中 */
? ? ? ? res = CH376DirInfoRead();
? ? ? ? if(res == USB_INT_SUCCESS)
? ? ? ? {
? ? ? ? ? /* 文件大小,低8位在前 */
? ? ? ? ? buf[0] = (UINT8)0;
? ? ? ? ? buf[1] = (UINT8)0;
? ? ? ? ? buf[2] = (UINT8)0;
? ? ? ? ? buf[3] = (UINT8)0;
? ? ? ? ? CH376WriteOfsBlock(buf, STRUCT_OFFSET(FAT_DIR_INFO, DIR_FileSize), 4);
? ? ? ? ? /* 保存文件的目錄信息 */
? ? ? ? ? res = CH376DirInfoSave();