單片機(jī)開發(fā)應(yīng)用模塊盤讀寫ch375hm_第1頁(yè)
單片機(jī)開發(fā)應(yīng)用模塊盤讀寫ch375hm_第2頁(yè)
單片機(jī)開發(fā)應(yīng)用模塊盤讀寫ch375hm_第3頁(yè)
單片機(jī)開發(fā)應(yīng)用模塊盤讀寫ch375hm_第4頁(yè)
單片機(jī)開發(fā)應(yīng)用模塊盤讀寫ch375hm_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1采用U盤作為大容量的移動(dòng)器,并且方便與使用WINDOWS操作系統(tǒng)的計(jì)算機(jī)交換數(shù)據(jù)。資源,大約5KB程序空間和600字節(jié)RAM數(shù)據(jù)器,無(wú)法應(yīng)用于某些資源有限的單片機(jī)系統(tǒng)。提供多種軟件供隨時(shí)到模塊硬件中,通過(guò)多種軟硬件組合支持各種不同的I/O接口。I/O2尺寸約長(zhǎng)50mmX寬30mmX高10mm。1或孔。關(guān)于串口版模塊的說(shuō)明請(qǐng)參考CH375HMX.PDF文檔。模塊的說(shuō)明請(qǐng)參考CH375HML.PDF文檔。J1短路時(shí)進(jìn)入功能配置狀USBUSB模塊進(jìn)行程序升級(jí)和功能配執(zhí)行驅(qū)動(dòng)程序包CH372DRV.EXECH372CH375WINDOWSCH37XDL.EXE,選擇目標(biāo)程序文件進(jìn)行或者重新配置模塊3USB固件程序的版本,與UHEXBIN文件并到模塊中]按鈕,指定廠家提供BINHEXU以設(shè)置一些附加功能,有些相當(dāng)于命令CMD_SetupModule的功能。功能設(shè)置項(xiàng)有:數(shù)據(jù)的字節(jié)順序是指模塊對(duì)外接口數(shù)據(jù)的格式,選中為大端格式BIG_ENDIAN,未選中為小如果是80X86PC機(jī)、ARM、MSP430、AVR單片機(jī)等,那么用小端格式。 自動(dòng)通知;在USB設(shè)備模式下,是下傳數(shù)據(jù)成功和上傳數(shù)據(jù)成功的自動(dòng)通 該功能,可以用查詢狀態(tài)命令代替。選中后啟用該功能,在USB主機(jī)模式0超時(shí),避免處理不完整令包,建議選中。如果用PC機(jī)串口調(diào)試工具測(cè)試模塊功能,可如果選擇串口,那么還應(yīng)該指定波特率除數(shù),相當(dāng)于命令CMD_BaudRate的功能,計(jì)算是晶115200bps,那么應(yīng)該指定波特率除數(shù)為5(即/32/115200。LEDU 4用于RAM多、數(shù)據(jù)量大、頻繁讀寫數(shù)據(jù)的系統(tǒng)應(yīng)用。適用于RAM少、數(shù)據(jù)量小、不經(jīng)常讀寫數(shù)據(jù)的系統(tǒng)應(yīng)用。本流式數(shù)據(jù)的系統(tǒng)應(yīng)用。數(shù)據(jù)流模式不支持并口,只支持串口,外部單片機(jī)系統(tǒng)可以是單片機(jī)、PLC可編程控制器、PC機(jī)等協(xié)議較簡(jiǎn)單的控制設(shè)備。DISK_OPEN_FILE_B每次新建或者打開一個(gè)文件后,默認(rèn)為扇區(qū)模式,支持以扇區(qū)為單位的文件操作命令進(jìn)入字節(jié)模式(只有關(guān)閉文件后再重新打開才能恢復(fù)到扇區(qū)模式),支持以字節(jié)為單位的操作命令文件信息表中專門記錄了當(dāng)前文件中有效數(shù)據(jù)的長(zhǎng)度,即通常所說(shuō)的文件長(zhǎng)度,文件長(zhǎng)度總是小后,變?yōu)樽芳訑?shù)據(jù),那么文件長(zhǎng)度應(yīng)該發(fā)生變化(增大FDT,F(xiàn)DTCMD_SetupMduleUSBCH375LibConfig,從而可以設(shè)定在添加數(shù)據(jù)后是否立即更新FDT中的文件長(zhǎng)度,默認(rèn)情況下是不更新文件長(zhǎng)度。3種方法:53種方法:2:CMD_FileClose,512方法3:執(zhí)行CMD_FileModify,指定修改文件長(zhǎng)度,任意的文件長(zhǎng)度CH375U(CH375CH375HF.PDF文檔。如果命令執(zhí)行失敗,那么只返回狀態(tài)碼,不返回任何結(jié)果數(shù)據(jù)。如果命令執(zhí)行回的結(jié)果數(shù)據(jù)都通過(guò)同一個(gè)聯(lián)合結(jié)構(gòu)CMD_PARAM傳遞。命令用途和概述(詳細(xì)說(shuō)明見(jiàn)后 信息 6structunsignedchar /*返回:子程序庫(kù)的版本號(hào)*/unsignedchar /*返回:模塊的版本號(hào)*/unsigned /*返回:USB版本:10H-CH375S,2xH-CH375A} /*CMD_GetVer,獲取當(dāng)前模塊的版本號(hào)structunsignedchar /*返回:上次的操作狀態(tài)*/unsignedchar /*返回:磁盤及文件狀態(tài)*/unsignedchar /*返回:CH375操作的中斷狀態(tài)*/unsignedchar unsigned /*unsigned mCurrentOffset;/*} /*CMD_QueryStatus,structunsigned mPathName[MAX_PATH_LEN];/*輸入?yún)?shù):路徑 名/文件名} /*CMD_FileOpen,打開文件structunsigned mPathName[MAX_PATH_LEN];/*輸入?yún)?shù):路徑 名/文件名} /*CMD_FileCreate,新建文件并打開structunsigned /*輸入?yún)?shù):是否允許更新長(zhǎng)度:0,1允許} /*CMD_FileClose,structunsignedlong mSectorOffset;/*,0,0FFFFFFFFH移動(dòng)到文件尾,返回:當(dāng)前文件指針對(duì)應(yīng)的絕對(duì)線性扇區(qū)號(hào),0FFFFFFFFH則已到文件尾*/} /*CMD_FileLocate,移動(dòng)當(dāng)前文件指針structunsigned /*輸入?yún)?shù):扇區(qū)數(shù),返回:實(shí)際扇區(qū)數(shù)} /*CMD_FileRead,從當(dāng)前文件數(shù)據(jù)structunsigned /*7}/*CMD_FileWrite,structunsigned}/*CMD_FileReadLast,structunsigned/*0FFFFFFFFH}By /*CMD_Byocate,以字節(jié)為單位移動(dòng)當(dāng)前文件指針structunsigned /*輸入?yún)?shù):準(zhǔn)備的字節(jié)數(shù),不得大于unsigned mByteBuffer[MAX_BYTE_IO/*} /*CMD_ByteRead,以字節(jié)為單位從文件數(shù)據(jù)塊structunsigned /*如果為0則刷新文件長(zhǎng)度而不寫入,否則寫入數(shù)據(jù)但不刷新文件長(zhǎng)度,返回:實(shí)際寫入的字節(jié)數(shù)*/unsignedchar mByteBuffer[MAX_BYTE_IO];/*輸入?yún)?shù):準(zhǔn)備寫入的數(shù)據(jù)塊*/} /*CMD_ByteWrite,structunsignedlongmFileSize;/*輸入:新文件長(zhǎng)度,為0FFFFFFFFH則不修改,返回:原長(zhǎng)度*/unsignedshortmFileDate;/*輸入?yún)?shù):新文件日期,為0FFFFH則不修改,返回:原日期*/unsignedshortmFileTime;/*輸入?yún)?shù):新文件時(shí)間,為0FFFFH則不修改,返回:原時(shí)間*/unsignedcharmFileAttr;/*0FFH*/Modify;/*CMD_FileQuery,CMD_FileModify,查詢或修改文件的信息struct/*/*/*}/*FAT/*CMD_DiskQuery,初始化(除數(shù)據(jù)流模式令外,進(jìn)行任何一種文件操作之前的必要步驟CMD_DiskReady,CMD_DiskSizeCMD_FileOpen8⑶如果是在字節(jié)模式下請(qǐng)?zhí)^(guò)此步驟;如果是在扇區(qū)模式下,并且需要文件尾部的不足一個(gè)扇區(qū)的零碎數(shù)據(jù),那么通過(guò)CMD_FileReadLast命令,下面的步驟與此類似CMD_FileClose,CMD_FileOpen⑵CMD_FileLocate或CMD_Byocate,移動(dòng)文件指針到指定位CMD_FileClose,順序改寫文件(覆蓋原數(shù)據(jù),超過(guò)原文件長(zhǎng)度后轉(zhuǎn)變?yōu)樽芳訑?shù)據(jù)CMD_FileOpen⑷改寫文件的指定位置(覆蓋原數(shù)據(jù),超過(guò)原文件長(zhǎng)度后轉(zhuǎn)變?yōu)樽芳訑?shù)據(jù)CMD_FileOpen⑵CMD_FileLocate或CMD_Byocate,移動(dòng)文件指針到指定位⑸CMD_FileOpen⑵CMD_FileLocate或CMD_Byocate,移動(dòng)文件指針到末尾⑸⑷CMD_FileOpen⑶CMD_FileLocate或CMD_Byocate,移動(dòng)文件指針到頭部⑹CMD_FileOpen⑶CMD_FileLocate或CMD_Byocate,移動(dòng)文件指針到頭部9⑹⑴⑵CMD_FileLocate或CMD_Byocate,移動(dòng)文件指針到末尾CMD_FileCreate⑺定期數(shù)據(jù)(適用于數(shù)據(jù)量較小的情況 ⑶⑷如果要等很長(zhǎng)時(shí)間才有下一組數(shù)據(jù),為了避免在此期間發(fā)生斷電、U盤拔出等,導(dǎo)致文件長(zhǎng)CMD_ByteWriteCMD_FileClose,CMD_FileOpen打開后再讀寫,完成后關(guān)閉。增加序號(hào)后可以繼續(xù)枚舉,直到搜索到指定的文件名或么說(shuō)明枚舉到的是子(可以考慮進(jìn)入該子搜索線制串口連接時(shí),該命令及同步碼共4個(gè)字節(jié)“57H、ABH、7EH、00H”CMD_StreamWriteU該命令及同步碼共4個(gè)字節(jié)“57H、ABH、7FH、00H”⑷模塊收到該字符后,先添加到緩沖區(qū)中,并從串口發(fā)出應(yīng)答。如果緩沖區(qū)已滿、或者收到刷新控⑴可選操作:CMD_SetupModule,設(shè)置模塊配置 ⑷單片機(jī)系統(tǒng)等待模塊發(fā)出狀態(tài)通知或者定期查詢模塊的狀態(tài),如果收到狀態(tài)碼ERR_USB_DAT_DOWN則轉(zhuǎn)到步驟⑸,如果收到狀態(tài)碼ERR_USB_DAT_UP則轉(zhuǎn)到步驟⑹,如果需要退出USB設(shè)備模式則轉(zhuǎn)到步驟⑺#define /*命令成功后,返回2個(gè)字節(jié)的數(shù)據(jù),依次是子程序庫(kù)的版本號(hào)和模塊的版本號(hào)。 /*模塊所用的子程序庫(kù)的版本號(hào)*/ /*模塊的版本號(hào)*/ /*USB版本:10H-CH375S,2xH-CH375A*/#define /* /* /*CH375U /*CH375當(dāng)工作于USB設(shè)備模式時(shí),如果沒(méi)有設(shè)置自動(dòng)通知,那么mIntStatusERR_USB_DAT_DOWN成功,如果為ERR_USB_DAT_UP則說(shuō)明上傳成功。 /*當(dāng)前文件的長(zhǎng)度,為0xFFFFFFFF說(shuō)明是 mCmdParam.Status.mCurrentOffset/*當(dāng)前文件指針,當(dāng)前讀寫位置的字節(jié)偏移*/#define /*據(jù)讀寫,所以建議在U盤連接后先執(zhí)行該命令,再進(jìn)行文件讀寫。示例:mand(CMD_DiskReady,0/*Uifi!=ERR_SUCCESS/**/else/*#defineCMD_FileOpen0x64/*打開文件或者打開文件或者,輸入?yún)?shù)在mCmdParam.Open.mPathName件長(zhǎng)度為0FFFFFFFFH,那么說(shuō)明打開的是子,否則說(shuō)明打開的是文件。例如118限,路徑名有長(zhǎng)度限制,最大長(zhǎng)度是MAX_PATH_LEN-1個(gè)字符。示例:strcpy(mCmdParam.Open.mPathName,"\\YEAR2004\\CH375HFT.C"mand(CMD_FileOpen,MAX_PATH_LEN);/**/if(i!=ERR_SUCCESS)/*出錯(cuò)*/else/*成功*/如果路徑名太長(zhǎng),那么可以分多次逐級(jí)打開,首先打開子,直到最后再打開文件,其中,首次打開必須是從根開始,所以路徑名首字符必須是斜杠,以后接著前級(jí)再打開時(shí)的首字符必strcpy(mCmdParam.Open.mPathName,"/YEAR2004/MONTH05/DATE18");/* 名*/mand(CMD_FileOpen,sizeof("/YEAR2004/MONTH05/DATE18"));/*打開 if(i==ERR_SUCCESS){/*前3級(jí)子 及文件*/strcpy(mCmdParam.Open.mPathName,"HOUR08/ADC.TXT");/*首字符不是斜杠*/mand(CMD_FileOpen,strlen(mCmdParam.Open.mPathName));/*}ifi!=ERR_SUCCESS)/**/else/* #defineCMD_FileEnumer0x63/*枚舉文件,返回文件名部或者部分字符,通配符*后面不能再有字符,而必須跟有枚舉序號(hào)0到254,例如 枚舉 枚舉 枚舉\YEAR2004\DATE1CMD_SetFileSizeCMD_FileOpenfor(c=0;c<255;c++){/*最多搜索前255*/strcpy(mCmdParam.Enumer.mPathName,C51\\CH375*"/*C51子下搜索以CH375,*for(i=0;mCmdParam.Enumer.mPathName[i]!=0;i++);/*指向文件名的結(jié)束符*/mCmdParam.Enumer.mPathName[i]c;/*0255mand(CMD_FileEnumer,i+1);/**,搜索文件ifi==ERR_MISS_FILEbreak;/**/if(i!=ERR_SUCCESS&&i!=ERR_FOUND_NAME)break;/*出錯(cuò)*/printf("foundname%d#:%s\n",(unsignedint)c,mCmdParam.Enumer.mPathName/*搜索到相匹配的文件名,顯示序號(hào)和搜索到的匹配文件名或者 名}for(intcount=0;count<20000;count++){/*20000*/mCmdParam.SetFileSize.mFileSizecount;/**/mand(CMD_SetFileSize,4);/*修改模塊內(nèi)子程序庫(kù)的文件長(zhǎng)度變量*/strcpy(mCmdParam.Enumer.mPathName,"\\*");/*在根 i=strlen(mCmdParam.Enumer.mPathName);/*計(jì)算文件名長(zhǎng)度,指向結(jié)束符*/mCmdParam.Enumer.mPathName[i]=0xFF;/*將結(jié)束符替換為255說(shuō)明序號(hào)在變量中*/mand(CMD_FileEnumer,i+1);/**,搜索文件ifi==ERR_MISS_FILEbreak;/**/if(i!=ERR_SUCCESS&&i!=ERR_FOUND_NAME)break;/*出錯(cuò)*/printf("foundname%d#:%s\n",count,mCmdParam.Enumer.mPathName/*搜索到相匹配的文件名,顯示序號(hào)和搜索到的匹配文件名或者子 名*/mand(CMD_QueryStatus,0);/*查詢模塊狀態(tài)*/if(mCmdParam.Status.mFileSize!=0xFFFFFFFF)printf("file\n");/*枚舉到文件*/elseprintf("thisisaSub-Directory\n");/*枚舉到子 }#defineCMD_FileCreate /*新建文件并打開,如果文件已存在則先刪除再新建*/001,如果需要修改則可以發(fā)出CMD_FileModify命令。示例:strcpy(mCmdParam.Create.mPathName,"\\C51\\NEWFILE.TXT");/*新文件名,在C51子 下新建文件NEWFILE.TXT,要求C51子 已經(jīng)事先存在*/mand(CMD_FileCreate,sizeof("\\C51\\NEWFILE.TXT"));/*新建文件并打開*/ifi!=ERR_SUCCESS)/**/else/*#define /*時(shí)能夠自動(dòng)更新為適當(dāng)?shù)奈募L(zhǎng)度,所以不需要執(zhí)行CMD_FileModify修改文件長(zhǎng)度。#defineCMD_FileLocate0x6A/*以扇區(qū)為單位移動(dòng)當(dāng)前文件指針mCmdParam.Locate.mSectorOffset0FFFFFFFFH,將文件指512(可以通過(guò)CMD_FileReadLast命令尾部數(shù)據(jù)。該命令返回時(shí),mCmdParam.Locate.mSectorOffset為當(dāng)前文件指針?biāo)赶虻臄?shù)據(jù)在磁盤中的LBA扇區(qū)號(hào),如果是0FFFFFFFFH則說(shuō)明已到文件尾。#defineCMD_FileRead0x6B/*以扇區(qū)為單位從當(dāng)前文件數(shù)據(jù)從當(dāng)前已打開文件中數(shù)據(jù),每次后自動(dòng)移動(dòng)文件指針,第二次執(zhí)行命令時(shí)將從第一次讀取數(shù)據(jù)的后面繼續(xù)數(shù)據(jù)。輸入?yún)?shù)應(yīng)該在mCmdParam.Read.mSectorCount中指定需要的扇區(qū)數(shù),所以512的零碎數(shù)據(jù),那么可以發(fā)出CMD_FileReadLast命令。#define /*是512的倍數(shù),那么可以在關(guān)閉文件前發(fā)出CMD_FileModify命令指定文件長(zhǎng)度。示例:mCmdParam.Locate.mSectorOffset=0xffffffff;/*移動(dòng)文件指針到文件末尾*/mand(CMD_FileLocate,4);/**/if(i!=ERR_SUCCESS)?/*出錯(cuò)*/mCmdParam.Write.mSectorCount2;/*21024*/mand(CMD_FileWrite,1);/*向文件寫入數(shù)據(jù),實(shí)際數(shù)據(jù)傳送另外實(shí)現(xiàn)*/ifi!=ERR_SUCCESS)/**/else/*#defineCMD_FileReadLast /*從當(dāng)前文件的尾部不足一扇區(qū)長(zhǎng)度的零碎數(shù)據(jù)*/ 實(shí)際的扇區(qū)數(shù)mCmdParam.ReadLast.mSectorCount,為1則說(shuō)明已經(jīng) 零碎數(shù)據(jù),為0則說(shuō)明文件尾部沒(méi)有零碎數(shù)據(jù)(文件長(zhǎng)度是512的倍數(shù)#defineCMD_Byocate /*以字節(jié)為單位移動(dòng)當(dāng)前文件指針,進(jìn)入字節(jié)模式*/入0FFFFFFFFH,將文件指針移動(dòng)原文件的末尾,以便追加數(shù)據(jù)。示例:mCmdParam.Byocate.mByteOffset=0xffffffff;/*移動(dòng)文件指針到文件末尾*/mand(CMD_Byocate,4);/*移動(dòng)文件指針,以便在原文件的末尾追加數(shù)據(jù)#define /*以字節(jié)為單位從當(dāng)前文件數(shù)據(jù),進(jìn)入字節(jié)模式 數(shù)據(jù)。輸入?yún)?shù)應(yīng)該在mCmdParam.ByteRead.mByteCount中指定需要 字節(jié)數(shù),所以判斷mCmdParam.ByteRead.mByteCount如果變小就說(shuō)明文件已經(jīng)結(jié)束。示例:mCmdParam.ByteRead.mByteCount=5;/*準(zhǔn)備讀出5個(gè)字節(jié),如果返回小于5則文件結(jié)束*/mand(CMD_ByteRead,1);/**/if(i!=ERR_SUCCESS)/*出錯(cuò)*/else/*成功*/ifmCmdParam.ByteRead.mByteCount5/*在mCmdParam.ByteRead.mByteBuffer中為讀出的數(shù)據(jù)塊*/mCmdParam.ByteRead.mByteCount48;/*48*/mand(CMD_ByteRead,1);/*以字節(jié)為單位從文件讀出數(shù)據(jù)#defineCMD_ByteWrite /*以字節(jié)為單位向當(dāng)前文件寫入數(shù)據(jù),進(jìn)入字節(jié)模式*/字節(jié)數(shù),字節(jié)數(shù)過(guò)MAX_BYTE_IO和sizeof(mCmdParam.ByteWrite.mByteBuffer),準(zhǔn)備寫mCmdParam.ByteWrite.mByteCount32;/*32/*將準(zhǔn)備寫入的數(shù)據(jù)塊到mCmdParam.ByteWrite.mByteBuffer中mand(CMD_ByteWrite,1+32);/**/if(i!=ERR_SUCCESS)/*出錯(cuò)*/else/*成功*/mCmdParam.ByteWrite.mByteCount7;/*70/*將準(zhǔn)備寫入的數(shù)據(jù)塊到mCmdParam.ByteWrite.mByteBuffer中mandCMD_ByteWrite,1+mCmdParam.ByteWrite.mByteCount);/*通常純文本文件可以用WINDOWS下的記事本、寫字板、WORD等各種編輯軟件打開。#defineCMD_StreamRead0x7E/*前尚未打開文件,那么模塊自動(dòng)等待U盤插入,然后自動(dòng)打開默認(rèn)文件“/模塊數(shù)據(jù).TXT“后。輸出一個(gè)字符,單片機(jī)系統(tǒng)必須發(fā)出一個(gè)應(yīng)答碼SER_STREAM_ACK后模塊才能繼續(xù)。如果模塊在文件過(guò)程中出現(xiàn)錯(cuò)誤,那么模塊將發(fā)出一個(gè)錯(cuò)誤碼SER_STREAM_ERROR通知單片機(jī)系統(tǒng);如果模塊檢 個(gè)刷新碼SER_STREAM_FLUSH,模塊將從文件第一個(gè)字符開始 SER_STREAM_ENDSendByte(SER_SYNC_CODE1SendByte(SER_SYNC_CODE2);/**/SendByte(CMD_StreamRead);SendByte(0);/*命令碼和參數(shù)長(zhǎng)度,無(wú)參數(shù)*/while(1){/*文件直到錯(cuò)誤或者文件結(jié)束,可以等待U盤插入并自動(dòng)打開文件*/unsignedcharc=RecvByte();/*接收文件的下一個(gè)字符*/ifc==SER_STREAM_END/*/*SendByte(SER_STREAM_FLUSH);continue;可以發(fā)出刷新命令重新文件*/break;/*如果無(wú)需重新文件,那么退出*/}ifc==SER_STREAM_ERRORbreak;}/*SendByte(SER_STREAM_ACK);/*}#defineCMD_StreamWrite0x7F/*U.TXT“后在其尾沖區(qū),每接收一個(gè)字符,模塊都發(fā)出一個(gè)應(yīng)答碼SER_STREAM_ACK,單片機(jī)發(fā)出字符并收到應(yīng)答碼后SER_STREAM_ERROR過(guò)程中,如果單片機(jī)系統(tǒng)希望立即刷新緩沖區(qū),那么可以發(fā)出一個(gè)刷新碼SER_STREAM_FLUSH,通知SER_STREAM_ENDSendByte(SER_SYNC_CODE1SendByte(SER_SYNC_CODE2);/**/SendByte(CMD_StreamWrite);SendByte(0);/*命令碼和參數(shù)長(zhǎng)度,無(wú)參數(shù)*/while1*U*/unsignedcharc,d;ifd=elseifdSER_STREAM_FLUSH;elsed=準(zhǔn)備寫入的下一個(gè)字符,以數(shù)據(jù)流模式寫入文件中,時(shí)間不限SendByte(d);/**/c=RecvByte();/*接收來(lái)自模塊的應(yīng)答*/ifcSER_STREAM_ERRORbreak;}/**/ifdSER_STREAM_ENDbreak;}/*}#define /*#define /*數(shù)中,如果參數(shù)的新值指定為0xFFFFFFFF,那么該參數(shù)將保持原值,否則將被修改為新值。mCmdParam.Modify.mFileDate指定新的文件日期,為0FFFFH則不修改,返回原日期mCmdParam.Modify.mFileTime指定新的文件時(shí)間,為0FFFFH則不修改,返回原時(shí)間mCmdParam.Modify.mFileAttr指定新的文件屬性,為0FFH則不修改,返回原屬性件的長(zhǎng)度修改為1105,但是不修改文件屬性、時(shí)間和日期。示例:mCmdParam.Modify.mFileAttr=ATTR_READ_ONLY;/*指定新的文件屬性為只讀*/mCmdParam.Modify.mFileTime=0xffff;/*不修改原文件時(shí)間*/mCmdParam.Modify.mFileDate=MAKE_FILE_DATE(2006,3,28);/*通過(guò)宏生成文件日期的數(shù)據(jù)格式,指定新的文件日期是2006.03.28*/mCmdParam.Modify.mFileSize1105;/*1105*/mand(CMD_FileModify,4+2+2+1);/**/if(i!=ERR_SUCCESS)/*出錯(cuò)*/else/*成功*/#defineCMD_FileDirInfo0x75/*FDT用于存取當(dāng)前已打開文件的FDT32mCmdParam.FileDirInfo.mAccessMode0時(shí)是文件信息,其值0F0H時(shí)是寫入/更新文件信息,替換原文件信息,模塊查信息是否正確。示例:mCmdParam.FileDirInfo.mAccessMode=0;/*文件信息*/mand(CMD_FileDirInfo,4/*存取當(dāng)前已打開文件的信息 /*以下將修改過(guò)的文件 信息寫回到U盤中*/mCmdParam.FileDirInfo.mAccessMode=0xF0;/*寫入/更新文 信息mand(CMD_FileDirInfo,4);/*存取當(dāng)前已打開文件 信息#defineCMD_SetFileSize0x78/*#define /*#define /*mCmdParam.Query.mDiskSizeSec為整個(gè)物理磁盤的總扇區(qū)數(shù)mCmdParam.Query.mTotalSector為當(dāng)前磁盤的總扇區(qū)數(shù) #defineCMD_FileErase0x66/*指定被刪除文件的路徑名和文件名,格式與命令CMD_FileOpen相同,不支持通配符。#define /*新 已經(jīng)存在則直接打開 ,輸入?yún)?shù)在mCmdParam.DirCreate.mPathName中指定新 命令CMD_FileOpen相同,不支持通配符。如果存在同名子 的日期和時(shí)間默認(rèn)為2004年1月1日0時(shí)0分0秒,如果需要修改則可以發(fā)出CMD_FileModify命令。示例:strcpy(mCmdParam.DirCreate.mPathName,"/C51/NEW_DIR");/*C51 必須事先存在*/mand(CMD_DirCreate,sizeof("/C51/NEW_DIR"));/*新建 并打開*/#define /*執(zhí)行基于BulkOnly協(xié)議令結(jié)構(gòu)中,執(zhí)行后返回信息在mCmdParam.BOC.mCSW結(jié)構(gòu)中。示例:mCmdParam.BOC.mCBW.mCBW_DataLen=0;/*該命令沒(méi)有數(shù)據(jù)傳輸*/mCmdParam.BOC.mCBW.mCBW_Flag=0x00;mCmdParam.BOC.mCBW.mCBW_CB_Len=6;/*命令塊長(zhǎng)度*/mCmdParam.BOC.mCBW.mCBW_CB_Buf[0]=0x1E;/*防止或者允許移除的SCSI命令碼*/mCmdParam.BOC.mCBW.mCBW_CB_Buf[4]=0x01;/*防止移除*/mCmdParam.BOC.mCBW.mCBW_CB_Buf[2]=mCmdParam.BOC.mCBW.mCBW_CB_Buf[1]=0;mCmdParam.BOC.mCBW.mCBW_CB_Buf[5]=mCmdParam.BOC.mCBW.mCBW_CB_Buf[3]=0;mand(CH375BulkOnlyCmd,MAX_PATH_LEN);/*執(zhí)行BulkOnly協(xié)議令#defineCMD_SetupModule0xA6/*設(shè)置模塊配置,臨時(shí)設(shè)定的自動(dòng)通知;在USB設(shè)備模式下,是下傳數(shù)據(jù)成功和上傳數(shù)據(jù)成功的自動(dòng)通知。INT#引腳恢復(fù)為高電平,否則模塊也會(huì)在幾十毫秒后自動(dòng)撤消中斷請(qǐng)求。在串口方式下,如果模塊檢測(cè)到U盤連接或者斷開,那么會(huì)從串口發(fā)出通知狀態(tài)碼,單片機(jī)系統(tǒng)的串口將收到由模塊發(fā)出的一個(gè)字節(jié)的狀態(tài)碼:ERR_USB_CONNECTERR_DISK_DISCON。ERR_USB_DAT_DOWN,上傳成功的中斷通知為ERR_USB_DAT_UP0為0,那么單片機(jī)系統(tǒng)只能定期查詢模塊狀態(tài),才能知道與PC機(jī)通訊的下傳或上傳成功。80X86PCARMMSP430#define /*輸入?yún)?shù)應(yīng)該在mCmdParam.BaudRate.mDivisor中指定波特率除數(shù),計(jì)算方法是“波特率除數(shù)= /32/120=4800bps。如果波特率除數(shù)為1,那么波特率為 命令執(zhí)行完成后,外部單片機(jī)系統(tǒng)應(yīng)該修改自身的波特率,然后等待2mS后再進(jìn)行后續(xù)操作。新版V1.4以上模塊可以在功能配置時(shí)直接指定,不必在每次啟動(dòng)后由單片機(jī)執(zhí)行該命令。51363111#define #define /*字符串,長(zhǎng)度不超過(guò)16個(gè)字符。PCCMD_SetupModule(0自動(dòng)通知#defineCMD_SetUsbId

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論