版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
串行設(shè)備驅(qū)動(dòng)第一頁,共三十五頁,編輯于2023年,星期六主要內(nèi)容1、WindowsCE.net串行設(shè)備簡(jiǎn)介2、串口設(shè)備驅(qū)動(dòng)3、串行設(shè)備API簡(jiǎn)介4、串口設(shè)備操作5、紅外設(shè)備簡(jiǎn)介第二頁,共三十五頁,編輯于2023年,星期六1、WindowsCE.net串行設(shè)備簡(jiǎn)介第三頁,共三十五頁,編輯于2023年,星期六WindowsCE.net串行設(shè)備WindowsCE.net的串行設(shè)備應(yīng)用十分廣泛GPRS通信智能數(shù)據(jù)終端GPS定位系統(tǒng)紅外通訊設(shè)備第四頁,共三十五頁,編輯于2023年,星期六使用通用碼流進(jìn)行數(shù)據(jù)傳輸,與標(biāo)準(zhǔn)串口完全兼容支持3線/9線串口方式串口模型基本延續(xù)了桌面系統(tǒng)的風(fēng)格和基本的API,但未封裝成類第五頁,共三十五頁,編輯于2023年,星期六串口的7層結(jié)構(gòu)第六頁,共三十五頁,編輯于2023年,星期六第七頁,共三十五頁,編輯于2023年,星期六Netarm2410-S串行設(shè)備情況UART0(3線)標(biāo)準(zhǔn)格式化信息輸出串口;基本通訊串口UART1(3線)基本通訊串口(未使用)UART2(3線)紅外通訊串口;基本通訊串口第八頁,共三十五頁,編輯于2023年,星期六2、串口設(shè)備驅(qū)動(dòng)第九頁,共三十五頁,編輯于2023年,星期六串口設(shè)備驅(qū)動(dòng)是一種流驅(qū)動(dòng)BSP中提供的串口驅(qū)動(dòng)模型較為復(fù)雜,在結(jié)構(gòu)上也分層為MDD和PDD層第十頁,共三十五頁,編輯于2023年,星期六第十一頁,共三十五頁,編輯于2023年,星期六第十二頁,共三十五頁,編輯于2023年,星期六3、串行設(shè)備API簡(jiǎn)介第十三頁,共三十五頁,編輯于2023年,星期六串口的APICreateFileOpensaserialport.GetCommStateFillsinadevice-controlblock—DCBstructure—withthecurrentcontrolsettingsforaspecifiedcommunicationdevice.SetCommStateConfiguresacommunicationdeviceaccordingtothespecificationsinaDCBstructure.Thefunctionreinitializesallhardwareandcontrolsettings,butdoesnotemptyI/Oqueues.GetCommTimeoutsRetrievesthetime-outparametersforallread/writeoperationsonaspecifiedcommunicationdevice.SetCommTimeoutsSetsthetime-outparametersforallread/writeoperationsonaspecifiedcommunicationdevice.WriteFileWritesdatatoaserialport,whichtransfersdatatothedeviceattheotherendofaserialconnection.ReadFileReadsdatafromaserialport,whichreceivesdatafromadeviceattheotherendofaserialconnection.第十四頁,共三十五頁,編輯于2023年,星期六串口的APISetCommMaskSpecifiesasetofeventstomonitorforacommunicationdevice.GetCommMaskRetrievesthevalueoftheeventmaskforaspecifiedcommunicationdevice.WaitCommEventWaitsforaneventtooccurforaspecifiedcommunicationdevice.ThesetofeventsmonitoredbyWaitCommEventiscontainedintheeventmaskassociatedwiththedevicehandle.EscapeCommFunctionDirectsaspecifiedcommunicationdevicetoperformanextendedfunction.OftenusedtosetaserialporttoIRmode.ClearCommBreakRestorescharactertransmissionforaspecifiedcommunicationdeviceandplacesthetransmissionlineinanon-breakstate.ClearCommErrorRetrievescommunicationerrordataandreportsthecurrentstatusofaspecifiedcommunicationdevice.第十五頁,共三十五頁,編輯于2023年,星期六4、串口設(shè)備操作第十六頁,共三十五頁,編輯于2023年,星期六打開串口//Opentheserialport.hPort=CreateFile(lpszPortName,//PointertothenameoftheportGENERIC_READ|GENERIC_WRITE,//Access(read-write)mode0,//SharemodeNULL,//PointertothesecurityattributeOPEN_EXISTING,//Howtoopentheserialport0,//PortattributesNULL);//Handletoportwithattribute//tocopy第十七頁,共三十五頁,編輯于2023年,星期六配置串口//InitializetheDCBlengthmember.PortDCB.DCBlength=sizeof(DCB);//Getthedefaultportsettinginformation.GetCommState(hPort,&PortDCB);//ChangetheDCBstructuresettings.PortDCB.BaudRate=9600;//CurrentbaudPortDCB.fBinary=TRUE;//Binarymode;noEOFcheckPortDCB.fParity=TRUE;//EnableparitycheckingPortDCB.fOutxCtsFlow=FALSE;//NoCTSoutputflowcontrolPortDCB.fOutxDsrFlow=FALSE;//NoDSRoutputflowcontrolPortDCB.fDtrControl=DTR_CONTROL_ENABLE;//DTRflowcontroltypePortDCB.fDsrSensitivity=FALSE;//DSRsensitivityPortDCB.fTXContinueOnXoff=TRUE;//XOFFcontinuesTxPortDCB.fOutX=FALSE;//NoXON/XOFFoutflowcontrolPortDCB.fInX=FALSE;//NoXON/XOFFinflowcontrolPortDCB.fErrorChar=FALSE;//DisableerrorreplacementPortDCB.fNull=FALSE;//DisablenullstrippingPortDCB.fRtsControl=RTS_CONTROL_ENABLE;//RTSflowcontrolPortDCB.fAbortOnError=FALSE;//Donotabortreads/writesonerrorPortDCB.ByteSize=8;//Numberofbits/byte,4-8PortDCB.Parity=NOPARITY;//0-4=no,odd,even,mark,spacePortDCB.StopBits=ONESTOPBIT;//0,1,2=1,1.5,2//ConfiguretheportaccordingtothespecificationsoftheDCBstructure.if(!SetCommState(hPort,&PortDCB)){//Couldnotconfiguretheserialport.dwError=GetLastError();MessageBox(hMainWnd,TEXT("Unabletoconfiguretheserialport"),TEXT("Error"),MB_OK);returnFALSE;}第十八頁,共三十五頁,編輯于2023年,星期六設(shè)置超時(shí)值//Retrievethetime-outparametersforallreadandwriteoperationsontheport.COMMTIMEOUTSCommTimeouts;GetCommTimeouts(hPort,&CommTimeouts);//ChangetheCOMMTIMEOUTSstructuresettings.CommTimeouts.ReadIntervalTimeout=MAXDWORD;CommTimeouts.ReadTotalTimeoutMultiplier=0;CommTimeouts.ReadTotalTimeoutConstant=0;CommTimeouts.WriteTotalTimeoutMultiplier=10;CommTimeouts.WriteTotalTimeoutConstant=1000;//Setthetime-outparametersforallreadandwriteoperationsontheport.if(!SetCommTimeouts(hPort,&CommTimeouts)){//Couldnotsetthetime-outparameters.MessageBox(hMainWnd,TEXT("Unabletosetthetime-outparameters"),TEXT("Error"),MB_OK);dwError=GetLastError();returnFALSE;}第十九頁,共三十五頁,編輯于2023年,星期六寫串口DWORDdwError,dwNumBytesWritten;WriteFile(hPort,//Porthandle&Byte,//Pointertothedatatowrite1,//Numberofbytestowrite&dwNumBytesWritten,//Pointertothenumberofbytes//writtenNULL//MustbeNULLforWindowsCE);第二十頁,共三十五頁,編輯于2023年,星期六讀串口BYTEByte;DWORDdwBytesTransferred;ReadFile(hPort,//Porthandle&Byte,//Pointertodatatoread1,//Numberofbytestoread&dwBytesTransferred,//Pointertonumberofbytes//readNULL//MustbeNULLforWindowsCE);第二十一頁,共三十五頁,編輯于2023年,星期六使用通訊事件BYTEByte;DWORDdwBytesTransferred;//Specifyasetofeventstobemonitoredfortheport.SetCommMask(hPort,EV_RXCHAR|EV_CTS|EV_DSR|EV_RLSD|EV_RING);while(hPort!=INVALID_HANDLE_VALUE){//Waitforaneventtooccurfortheport.WaitCommEvent(hPort,&dwCommModemStatus,0);//Re-specifythesetofeventstobemonitoredfortheport.SetCommMask(hPort,EV_RXCHAR|EV_CTS|EV_DSR|EV_RING);if(dwCommModemStatus&EV_RXCHAR){//Loopforwaitingforthedata.do{//Readthedatafromtheserialport.ReadFile(hPort,&Byte,1,&dwBytesTransferred,0);//Displaythedataread.if(dwBytesTransferred==1)ProcessChar(Byte);}while(dwBytesTransferred==1);}第二十二頁,共三十五頁,編輯于2023年,星期六通訊事件簡(jiǎn)介Event DescriptionEV_BREAK Abreakoccurredoninput.EV_CTS TheCTSsignalchangedstate.EV_DSR TheDSRsignalchangedstate.EV_ERR Aline-statuserroroccurred.Line-statuserrorsareCE_FRAME,CE_OVERRUN,andCE_RXPARITY.EV_RING Aringindicatorwasdetected.EV_RLSDThereceive-line-signal-detectsignalchangedstate.EV_RXCHAR Acharacterwasreceivedandplacedintheinputbuffer.EV_RXFLAG Theeventcharacterwasreceivedandplacedintheinputbuffer.EV_TXEMPTY Thelastcharacterintheoutputbufferwassent.第二十三頁,共三十五頁,編輯于2023年,星期六關(guān)閉串口BOOLCloseHandle(HANDLEhObject);關(guān)閉一個(gè)已經(jīng)打開的對(duì)象句柄,使用這種方法來關(guān)閉串口參數(shù):待關(guān)閉的句柄返回值:是否關(guān)閉成功第二十四頁,共三十五頁,編輯于2023年,星期六5、紅外設(shè)備簡(jiǎn)介第二十五頁,共三十五頁,編輯于2023年,星期六紅外通訊紅外線是波長(zhǎng)在750nm至1mm之間的電磁波,其頻率高于微波而低于可見光,是一種人的眼眼看不到的光線。目前無線電波和微波已被廣泛應(yīng)用在長(zhǎng)距離的無線通信中,但由于紅外線的波長(zhǎng)較短,對(duì)障礙物的衍射能力差,所以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位人力資源管理制度精彩大全
- 醫(yī)療合作項(xiàng)目合同管理準(zhǔn)則
- 高層住宅外墻清洗項(xiàng)目招投標(biāo)
- 網(wǎng)絡(luò)營銷企業(yè)薪酬管理
- 居民區(qū)通風(fēng)設(shè)備安裝合同
- 天津市養(yǎng)老社區(qū)物業(yè)醫(yī)療服務(wù)規(guī)范
- 紡織服裝弱電施工合同
- 廣東省廣州市天河區(qū)2023-2024學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試卷(解析版)
- 羅定職業(yè)技術(shù)學(xué)院《田徑AⅡ》2023-2024學(xué)年第一學(xué)期期末試卷
- 酒店工程塔吊施工協(xié)議
- 國際金融課后習(xí)題答案(吳志明第五版)第1-9章
- 《WPS演示制作與設(shè)計(jì)》計(jì)算機(jī)應(yīng)用基礎(chǔ)高職專科一等獎(jiǎng)(含課件制作試題及答案)
- 大英縣“互聯(lián)網(wǎng)+智慧教育”建設(shè)項(xiàng)目 ?招標(biāo)文件(采購)
- GB/T 7533-1993有機(jī)化工產(chǎn)品結(jié)晶點(diǎn)的測(cè)定方法
- GB/T 6728-2017結(jié)構(gòu)用冷彎空心型鋼
- 紅色喜慶新年快樂企業(yè)年會(huì)PPT
- 智慧港口信息化平臺(tái)建設(shè)方案
- 水土保持工程學(xué)課程設(shè)計(jì)
- 《牛常見病防治技術(shù)》課件
- 腰椎骨折的圍手術(shù)期護(hù)理詳解演示文稿
- 變壓器變比測(cè)試課件
評(píng)論
0/150
提交評(píng)論