freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于c的rs232通信協(xié)議模擬終端畢業(yè)論文-資料下載頁

2025-05-27 18:06本頁面
  

【正文】 yDlg::OnSendbtn() { // TODO: Add your control notification handler code here UpdateData(true)。 //讀取編輯框內(nèi)容 if(()) { CByteArray hexdata。 int len=String2Hex(m_send,hexdata)。 //此處返回的len可以用于計算發(fā)送了多少個十六進制數(shù) (COleVariant(hexdata))。 //發(fā)送十六進制數(shù)據(jù) } else (COleVariant(m_send))。//發(fā)送ASCII字符數(shù)據(jù) CByteArray hexdata。 unsigned int le=String2Hex(m_send,hexdata)。 unsigned char* pC = (unsigned char*)(LPCTSTR)m_send。 if(()) m_crcs=crc16r(pC,le)。 UpdateData(false)。 ()。 //發(fā)送后清空輸入框 UpdateData(false)。 //更新編輯框內(nèi)容 //if(())}(7)十六進制轉(zhuǎn)換模塊本模塊主要是實現(xiàn)將字符轉(zhuǎn)換成十六進制形式,轉(zhuǎn)換后發(fā)送到接收區(qū)的數(shù)據(jù)即是十六進制的形式。單個字符轉(zhuǎn)換成十六進制的流程圖如圖415所示,代碼如下。開始N字符是否在0F之間Y返回值1轉(zhuǎn)換成相應的16進制形式結(jié)束圖415 單個字符轉(zhuǎn)換成十六進制的流程圖int CMyDlg::String2Hex(CString str, CByteArray amp。senddata) { int hexdata,lowhexdata。 int hexdatalen=0。 int len=()。 (len/2)。 for(int i=0。ilen。) { char lstr,hstr=str[i]。 if(hstr==39。 39。) {i++。 continue。 } i++。 if(i=len) break。 lstr=str[i]。 hexdata=ConvertHexChar(hstr)。 lowhexdata=ConvertHexChar(lstr)。 if((hexdata==16)||(lowhexdata==16)) break。 else hexdata=hexdata*16+lowhexdata。 i++。 senddata[hexdatalen]=(char)hexdata。 hexdatalen++。 } (hexdatalen)。 return hexdatalen。} char CMyDlg::ConvertHexChar(char ch){if((ch=39。039。)amp。amp。(ch=39。939。)) return ch0x30。 else if((ch=39。A39。)amp。amp。(ch=39。F39。)) return ch39。A39。+10。 else if((ch=39。a39。)amp。amp。(ch=39。f39。))return ch39。a39。+10。 else return (1)。} 程序測試首先,;其次,按以下步驟進行測試:(1)登錄 輸入錯誤密碼,程序提示“密碼、用戶名錯誤,請重試!”如圖416所示。圖416 用戶名密碼不一致輸入正確用戶名和密碼,程序提示“登錄成功!歡迎使用!”如圖417 所示。圖417 用戶名密碼正確(2)串口和參數(shù)的設(shè)置 登陸成功后跳轉(zhuǎn)到主界面,通信之前要設(shè)置可用的串口號,設(shè)置串口號時若沒有選對串口號,應用程序會提示不可用的串口,直到設(shè)置了可用的串口號[24]。然后需要打開串口,點擊【打開串口】按鈕,程序會提示串口打開成功,最后設(shè)置通信參數(shù),點擊【設(shè)置】按鈕,跳轉(zhuǎn)到設(shè)這界面,根據(jù)需要選擇通信參數(shù),如果保存設(shè)置就點擊【確定按鈕】否則點擊【退出】按鈕,之后又回到了主界面,現(xiàn)在即可進行數(shù)據(jù)的發(fā)送了。如圖418所示。圖418 設(shè)置串口和參數(shù)(3)發(fā)送數(shù)據(jù)選擇串口號,并將此串口打開,設(shè)置通信參數(shù)完成后,在發(fā)送區(qū)內(nèi)的編輯框輸入要發(fā)送的內(nèi)容,然后點擊【發(fā)送】按鈕,發(fā)送去編輯框里要發(fā)送的內(nèi)容會通過此串口發(fā)送到另一個端口的接收區(qū)的編輯框內(nèi),并在接收區(qū)的編輯框內(nèi)顯示了發(fā)送的內(nèi)容,同理也可在另一個串口的發(fā)送區(qū)編輯框內(nèi)輸入數(shù)據(jù),此數(shù)據(jù)也可發(fā)送到本串口的編輯框內(nèi),也會在接收區(qū)的編輯框內(nèi)得到顯示,如圖419所示。即串口3的內(nèi)容“”發(fā)送到了串口4中,串口4的內(nèi)容“”可以發(fā)送到串口3的接收區(qū),并在編輯框中得到顯示。圖419 發(fā)送接收數(shù)據(jù)(4)十六進制顯示和計算CRC值設(shè)置完成各參數(shù)后,選擇十六進制發(fā)送、接收復選框和計算CRC數(shù)值復選框,點擊【發(fā)送按鈕】,可以看到在接收區(qū)字符是以十六進制形式顯示的,接收和發(fā)送的CRC值在編輯框中顯示,這樣就可以判斷發(fā)送的內(nèi)容是否受到干擾。如圖420所示。圖420 十六進制顯示和計算發(fā)送接收數(shù)據(jù)CRC值(5)關(guān)閉串口退出整個應用程序發(fā)送數(shù)據(jù)結(jié)束后,關(guān)閉串口,點擊【退出】按鈕,程序提示“謝謝使用!再見”。如圖421 所示:圖421 系統(tǒng)提示框 本章小結(jié)本章介紹了Windows編程下的MFC和串行通信控件MSComm,詳細的描述了利用MFC和串行通信控件MSComm實現(xiàn)兩臺PC機間的數(shù)據(jù)交換的設(shè)計概述、模塊功能、代碼實現(xiàn)等。并對此應用程序進行了運行測試。 第5章 結(jié)論通過RS232標準協(xié)議接口,用WINDOWS編程下的MFC應用程序,基于C++語言的串行通信,基本實現(xiàn)了兩臺PC機間的數(shù)據(jù)交換。主要功能有用戶名密碼驗證登錄、設(shè)置串口號、打開串口、關(guān)閉串口、設(shè)置通信參數(shù)等。了解了串行通信接口,即RS232標準以及接口,學習了串行通信的基本原理,串行通信的通信參數(shù),例如波特率、數(shù)據(jù)位、停止位和奇偶校驗位等。掌握了串行通信的基本概念。學習了一些數(shù)據(jù)庫的相關(guān)知識,利用了數(shù)據(jù)庫中最簡單、最方便的Microsoft Office Access數(shù)據(jù)庫,通過ODBC建立數(shù)據(jù)源來實現(xiàn)用戶名密碼登錄驗證功能。實現(xiàn)通信功能時,綜合考慮了多種能實現(xiàn)通信的方式后,最終選擇了Windows編程下的MFC應用程序,使用C++語言實現(xiàn)串行通信,其中使用的是MSComm控件。應用程序?qū)崿F(xiàn)了選擇串口、打開串口、關(guān)閉串口、發(fā)送接收數(shù)據(jù)等功能,同時又可通過應用程序設(shè)置通信參數(shù)(包括波特率、數(shù)據(jù)位、停止位和奇偶校驗位等)。由于通信過程中,被傳遞的數(shù)據(jù)有可能受到各種因素的影響,造成數(shù)據(jù)丟失,更改等,影響發(fā)送接收數(shù)據(jù)的準確性。所以通信過程中要對接收到的數(shù)據(jù)進行校驗。最簡單的校驗是奇偶校驗,通過統(tǒng)計接收數(shù)據(jù)中二進制數(shù)‘0’和‘1’的個數(shù),來確認收到的數(shù)據(jù)是否正確。但此方法只能簡單驗證不準確。所以對通信過程中數(shù)據(jù)交換準確度的驗證采用了比較準確的方法即CRC校驗,CRC校驗全稱CRC(Cyclic Redundancy Check)循環(huán)冗余校驗碼,它是數(shù)據(jù)通信中最常用的一種差錯校驗碼,數(shù)據(jù)從發(fā)送端發(fā)送過來同時在其低位上是兩個CRC校驗碼,接收方對接收到的數(shù)據(jù)進行CRC解碼,與發(fā)送來的數(shù)據(jù)進行比對,驗證是否相同,若相同則接收到的數(shù)據(jù)是正確的,反之則證明數(shù)據(jù)在發(fā)送過程中受到了干擾等,需重新發(fā)送此數(shù)據(jù)。使用此校驗方法可以保證數(shù)據(jù)收發(fā)的準確性??傊?,RS232標準一直都應用于通信領(lǐng)域中,串行通信以其成本低、結(jié)構(gòu)簡單等優(yōu)點被人們廣泛應用。用RS232協(xié)議實現(xiàn)兩臺PC機間的串行通信是實現(xiàn)主控機與外圍通信的前提,為以后實現(xiàn)更加復雜的設(shè)備間通信奠定了基礎(chǔ)。 參 考 文 獻[1] [D].上海:華東師范大學,2010.[2] [D].合肥:合肥工業(yè)大學,2009.[3] 樊一支,姜文祥,陳梨園。串行通信控制的C++生成和RS232[M].北京:清華大學出版社,2002年.[4] [M].北京:中國電力出版社,2007[5] [J].計算機工程和設(shè)計,2003,24(12):120123.[6] [D].北京:北京工商大學,2009.[7] 5209Modem的AT指令分析和擴展[D].南京:東南大學,2008.[8] [D].青島:青島大學,2012.[9] ,2010.[10] 常曉明,[J].電子技術(shù)應用,1995,12(6):2240.[11] [J].電腦知識與技術(shù),2012,23(5):1545..[12].VisualC++技術(shù)內(nèi)幕[M].:清華大學出版社,1996.[13][M].北京:北京學苑出版社,1994.[14] Bjarne Stroustrup. The C++ Programming Language:Special Edition[J]. AddisonWesley Professional,2010,19(11):2568..[15] [M].武漢:華中科技大學出版社,2001.[16] 王華,岳麗全,++[J].長春工程學院學報:自然科學版,2009,10(1):3255.[17] Herbert ++:The Complete Reference,Fourth Edition[J] .McGrawHill,2009,23(7):1552.[18] 孫淑霞,李思明,++程序設(shè)計實驗指導與測試第2版[J].北京:電子工業(yè)出版社,2007.[19] 王莉,++的串口通信設(shè)計及其應用[J].控制工程,2004,11 (S1) :8999.[20] 王珊,[M].北京:清華大學出版社,2007.[21] Adam Structures and Algorithms in C++ Third Edition[J].Thomson ,2(1):1347.[22] ++[M].北京:北京希望電子出版社,2001年,第16.[23] Stanley ,Josee LaJoie,Barbara . C++ Primer[J]. Addison Wesley/Pearson ,2006,3(6):2748.[24] David ,Scot Wingo,George Shepherd. Programming Visual C++[J]. 2001,2(5):3678.43
點擊復制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1