C++課程設(shè)計(jì) 串口調(diào)試助手_第1頁
C++課程設(shè)計(jì) 串口調(diào)試助手_第2頁
C++課程設(shè)計(jì) 串口調(diào)試助手_第3頁
C++課程設(shè)計(jì) 串口調(diào)試助手_第4頁
C++課程設(shè)計(jì) 串口調(diào)試助手_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目 錄【內(nèi)容摘要】2【關(guān)鍵詞】21 開發(fā)語言及開發(fā)平臺(tái)簡介31.1 開發(fā)語言31.1.1 C語言31.1.2 C+語言31.2 開發(fā)平臺(tái)41.2.1 Microsoft Visual C+41.2.2 C+ Builder42 軟件開發(fā)過程52.1 開發(fā)所需要的控件52.1.1 按鈕控件52.1.2 文本控件52.1.3 串口控件52.1.4 選擇控件62.2 數(shù)據(jù)發(fā)送設(shè)計(jì)62.3 數(shù)據(jù)接收設(shè)計(jì)83 軟件使用說明94 軟件測試104.1 輔助工具104.2 發(fā)送測試104.3 接收測試105 總結(jié)11致謝12參考文獻(xiàn)13附錄 主要程序14串口發(fā)送程序14串口接收程序15【Abstract】17

2、【Key Words】1718串口調(diào)試助手設(shè)計(jì)專業(yè):電子科學(xué)與技術(shù) 學(xué)號(hào):XXXXXXXXXXX學(xué)生姓名:X X X 指導(dǎo)老師姓名:X X X【內(nèi)容摘要】串口調(diào)試助手是串口調(diào)試相關(guān)工具,網(wǎng)絡(luò)上有很多串口調(diào)試助手,界面不同,功能各異,使用的開發(fā)語言和開發(fā)平臺(tái)也不相同。有的使用C語言開發(fā),有的使用C+語言開發(fā),還有的即使用C語言也使用C+語言;開發(fā)平臺(tái)有的使用Visual C+,有的使用C+ Builder等。本軟件使用C語言和C+語言,開發(fā)平臺(tái)使用C+Builder軟件。該串口調(diào)試助手串口調(diào)試助手版支持常用的110 256000bps波特率,能設(shè)置校驗(yàn)、數(shù)據(jù)位和停止位,能以ASCII碼或十六進(jìn)制

3、接收或發(fā)送數(shù)據(jù)或字符(包括中文),能發(fā)送文本文件(*.txt文本),可以任意設(shè)定自動(dòng)發(fā)送周期,并能將接收數(shù)據(jù)保存成文本文件(*.txt),是做項(xiàng)目開發(fā)調(diào)試串口的好工具?!娟P(guān)鍵詞】串口;C+;C+ Builder;控件;測試;1 開發(fā)語言及開發(fā)平臺(tái)簡介1.1 開發(fā)語言1.1.1 C語言C語言是一種計(jì)算機(jī)程序設(shè)計(jì)語言,它既具有高級(jí)語言的特點(diǎn),又具有匯編語言的特點(diǎn)。它由美國貝爾實(shí)驗(yàn)室的Dennis M. Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機(jī)上,它可以作為工作系統(tǒng)設(shè)計(jì)語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。它的

4、應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,適于編寫系統(tǒng)軟件,三維,二維圖形和動(dòng)畫,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。1隨著微型計(jì)算機(jī)的日益普及,出現(xiàn)了許多C語言版本。由于沒有統(tǒng)一的標(biāo)準(zhǔn), 使得這些C語言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國國家標(biāo)準(zhǔn)研究所(ANSI)為C語言制定了一套ANSI標(biāo)準(zhǔn),成為現(xiàn)行的C語言標(biāo)準(zhǔn)。在操作系統(tǒng)和系統(tǒng)使用程序以及需要對硬件進(jìn)行操作的場合,用C語言明顯優(yōu)于其它高級(jí)語言,以前有許多大型應(yīng)用軟件都是用C語言編寫的(由于面向?qū)ο缶幊碳夹g(shù)的出現(xiàn),大型軟件轉(zhuǎn)由C+、JAVA、C#再配合C語言開發(fā);C語言在面對

5、大型的軟件開發(fā)時(shí),會(huì)顯得有些吃力)。21.1.2 C+語言計(jì)算機(jī)誕生初期,人們要使用計(jì)算機(jī)必須用機(jī)器語言或匯編語言編寫程序。世界上第一種計(jì)算機(jī)高級(jí)語言誕生于1954年,它是FORTRAN語言。先后出現(xiàn)了多種計(jì)算機(jī)高級(jí)語言。其中使用最廣泛、影響最大的當(dāng)推BASIC語言和C語言:BASIC語言是1964年在FORTRAN語言的基礎(chǔ)上簡化而成的, 它是為初學(xué)者設(shè)計(jì)的小型高級(jí)語言;C語言是1972年由美國貝爾實(shí)驗(yàn)室的D.M.Ritchie研制成功的。它不是為初學(xué)者設(shè)計(jì)的,而是為計(jì)算機(jī)專業(yè)人員設(shè)計(jì)的。大多數(shù)系統(tǒng)軟件和許多應(yīng)用軟件都是用C語言編寫的,但是隨著軟件規(guī)模的增大,用C語言編寫程序漸漸顯得有些吃力

6、了。3在C基礎(chǔ)上,1983年又由貝爾實(shí)驗(yàn)室的Bjarne Stroustrup推出了C+。 C+進(jìn)一步擴(kuò)充和完善了C語言,成為一種面向 對象的程序設(shè)計(jì)語言。C+目前流行的編譯器最新版本是GCC 4.8.2和Microsoft Visual Studio 2013。C+提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓栴}空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計(jì)不同的思維方式和編程方法。因而也增加了整個(gè)語言的復(fù)雜性,掌握起來有一定難度。4C+由美國AT&T貝爾實(shí)驗(yàn)室的本賈尼·斯特勞斯特盧普博士在20世紀(jì)80年代初期發(fā)明并實(shí)現(xiàn)(最初這種語言被稱作“

7、C with Classes”,即“帶類的C”)。 C+保留了C語言原有的所有優(yōu)點(diǎn),增加了面向?qū)ο蟮臋C(jī)制。開始,C+是作為C語言的增強(qiáng)版出現(xiàn)的,從給C語言增加類開始,不斷的增加新特性。虛函數(shù)(virtual function)、運(yùn)算符重載(Operator Overloading)、多重繼承(Multiple Inheritance)、模板(Template)、異常(Exception)、RTTI、命名空間(namespace)逐漸被加入標(biāo)準(zhǔn)。5C+是由C發(fā)展而來的,與C兼容。用C語言寫的程序基本上可以不加修改地用于C+。從C+的名字可以看出它是C的超越和集中。C+既可用于面向過程的結(jié)構(gòu)化程序

8、設(shè)計(jì),又可用于面向?qū)ο蟮某绦蛟O(shè)計(jì),是一種功能強(qiáng)大的混合型的程序設(shè)計(jì)語言。1.2 開發(fā)平臺(tái)1.2.1 Microsoft Visual C+Microsoft Visual C+是Microsoft公司推出的開發(fā)Win32環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。它不但具有程序框架自動(dòng)生成、靈活方便的類管理、代碼編寫和界面設(shè)計(jì)集成交互操作、可開發(fā)多種程序等優(yōu)點(diǎn),而且通過簡單的設(shè)置就可使其生成的程序框架支持?jǐn)?shù)據(jù)庫接口、OLE2,WinSock網(wǎng)絡(luò)、3D控制界面。它以擁有“語法高亮”,IntelliSense(自動(dòng)完成功能)以及高級(jí)除錯(cuò)功能而著稱。比如,它允許用戶進(jìn)行遠(yuǎn)程調(diào)試,單步執(zhí)行等。還有允許用戶

9、在調(diào)試期間重新編譯被修改的代碼,而不必重新啟動(dòng)正在調(diào)試的程序。其編譯及建置系統(tǒng)以預(yù)編譯頭文件、最小重建功能及累加連結(jié)著稱。這些特征明顯縮短程式編輯、編譯及連結(jié)花費(fèi)的時(shí)間,在大型軟件計(jì)劃上尤其顯著。61.2.2 C+ BuilderC+ Builder是由Borland公司推出的一款可視化集成開發(fā)工具。C+ Builder具有快速的可視化開發(fā)環(huán)境:只要簡單地把控件(Component)拖到窗體(Form)上,定義一下它的屬性,設(shè)置一下它的外觀,就可以快速地建立應(yīng)用程序界面;C+ Builder內(nèi)置了100多個(gè)完全封裝了Windows公用特性且具有完全可擴(kuò)展性(包括全面支持ActiveX控件)的可

10、重用控件;C+ Builder具有一個(gè)專業(yè)C+開發(fā)環(huán)境所能提供的全部功能:快速、高效、靈活的編譯器優(yōu)化,逐步連接,CPU透視,命令行工具等。它實(shí)現(xiàn)了可視化的編程環(huán)境和功能強(qiáng)大的編程語言(C+)的完美結(jié)合。72 軟件開發(fā)過程2.1 開發(fā)所需要的控件2.1.1 按鈕控件按鈕控件為中用的Button,它允許用戶通過單擊來執(zhí)行操作。Button 控件既可以顯示文本,又可以顯示圖像。當(dāng)該按鈕被單擊時(shí),它看起來像是被按下,然后被釋放。該控件經(jīng)常用來進(jìn)行事件的觸發(fā)使用,當(dāng)在程序界面中拖出一個(gè)該控件,內(nèi)部將會(huì)自動(dòng)生成該控件對應(yīng)的函數(shù),當(dāng)點(diǎn)擊一下該控件時(shí),將會(huì)執(zhí)行該控件對應(yīng)的函數(shù),因此在該程序中,數(shù)據(jù)發(fā)送等操作

11、都使用該控件。按鈕控件的如圖2.1所示。圖2.1 按鈕控件2.1.2 文本控件文本控件為Edit,給文本控件添加字符串的操作為s為字符串?dāng)?shù)據(jù),Edit1->Text=s;讀取字符串?dāng)?shù)據(jù)的操作為s=Edit1->Text,如果想要把讀取到的字符串?dāng)?shù)據(jù)轉(zhuǎn)換為整數(shù)時(shí),必須調(diào)用函數(shù)StrToInt(),例如t為整型變量t=StrToInt(Edit1->Text),如果想要把讀取到的字符串?dāng)?shù)據(jù)轉(zhuǎn)換為十六進(jìn)制數(shù)時(shí),必須調(diào)用函數(shù)StrToHHex(),例如t為整型變量t=StrToHex(Edit1->Text)。文本控件如圖2.2所示。圖2.2 文本控件2.1.3 串口控件串口控

12、件的為YbCommDevice1,內(nèi)部已嵌入端口的選擇、波特率的設(shè)定、以及奇偶校驗(yàn)位、停止位的設(shè)置等串口通訊協(xié)議需要設(shè)置的參數(shù),串口控件設(shè)置如圖2.3所示。圖2.3 串口控件設(shè)置界面2.1.4 選擇控件選擇控件CheckBox,就是我們一般所說的選擇框,通常用于某選項(xiàng)的打開或關(guān)閉。大多數(shù)應(yīng)用程序的“設(shè)置”對話框內(nèi)均有此控件。我們看到的可以打勾的就是CheckBox。該控件表明一個(gè)特定的狀態(tài)(即選項(xiàng))是選定 (on,值為true) 還是清除 (off,值為false)。在應(yīng)用程序中使用該控件為用戶提供True/False”或“yes/no”的選擇。進(jìn)行選項(xiàng)組合。在程序中通過對此控件屬性的Chec

13、ked來進(jìn)行判斷是否是true或者false,然后在對程序進(jìn)行數(shù)據(jù)處理。選擇控件如圖2.4所示。圖2.4 選擇控件2.2 數(shù)據(jù)發(fā)送設(shè)計(jì)該軟件的數(shù)據(jù)發(fā)送可以實(shí)現(xiàn)自動(dòng)發(fā)送和手動(dòng)發(fā)送,手動(dòng)發(fā)送通過按鍵按鈕來實(shí)現(xiàn),自動(dòng)發(fā)送通過定時(shí)器控件實(shí)現(xiàn)。發(fā)送時(shí)主要的是實(shí)現(xiàn)對字符數(shù)據(jù)或者對十六進(jìn)制數(shù)據(jù)進(jìn)行處理成單字節(jié)給串口緩沖區(qū)發(fā)送出去,此時(shí)首先提取控件Memo1填入的數(shù)據(jù),然后進(jìn)行要判斷是否要按十六進(jìn)制數(shù)或者是字符數(shù)發(fā)送數(shù)據(jù),處理數(shù)據(jù)之后在發(fā)送出去。本助手還可以發(fā)送*.txt文件,其發(fā)送原理是先把*.txt文件的內(nèi)容提取出來放入Memo1中,然后進(jìn)行要判斷是否要按十六進(jìn)制數(shù)或者是字符數(shù)發(fā)送數(shù)據(jù),處理數(shù)據(jù)之后在發(fā)送

14、出去。數(shù)據(jù)發(fā)送的流程圖如圖2.5所示。圖2.5 數(shù)據(jù)發(fā)送的程序流程圖發(fā)送數(shù)據(jù)界面如圖2.6所示。圖2.6 發(fā)送數(shù)據(jù)界面2.3 數(shù)據(jù)接收設(shè)計(jì)該軟件實(shí)現(xiàn)數(shù)據(jù)的接收采用的方式是用定時(shí)器間隔的檢查串口接收緩沖區(qū),如果檢查到串口接收緩沖區(qū)數(shù)據(jù)接收標(biāo)志位為1,就開始接收數(shù)據(jù),否則標(biāo)志位為0,將不接收任何數(shù)據(jù)。當(dāng)檢查到有數(shù)據(jù)接收時(shí),首先讀取接收到數(shù)據(jù)的長度,然后判斷數(shù)據(jù)時(shí)按十六進(jìn)制顯示在接收區(qū)還是按字符數(shù)據(jù)顯示在接收區(qū),再對數(shù)據(jù)進(jìn)行十六進(jìn)制處理或者字符處理。如果要求清空接收區(qū),點(diǎn)擊清空按鈕講調(diào)用Memo1->Clear()對接收區(qū)進(jìn)行清空。還可以對接收的數(shù)據(jù)進(jìn)行保存為*.txt文件,默認(rèn)名字為wqy.

15、txt,默認(rèn)路徑為D盤。接收數(shù)據(jù)程的序流程圖如圖2.7所示。圖2.7 數(shù)據(jù)接收的程序流程圖接收數(shù)據(jù)界面如圖2.8所示。圖2.8 數(shù)據(jù)接收界面3 軟件使用說明整個(gè)使用說明分成四部分來介紹:(1)串口設(shè)置本;(2)通訊狀態(tài);(3)發(fā)送;(4)接收。整個(gè)軟件打開后界面如圖3.1所示。圖3.1 整個(gè)軟件界面(1)串口設(shè)置先點(diǎn)擊串口設(shè)置,會(huì)彈出串口設(shè)置界面,設(shè)置好端口、波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位,然后點(diǎn)擊打開串口就可以了。(2)通訊狀態(tài)通訊狀態(tài)主要是看串口的狀態(tài),發(fā)送的字節(jié)數(shù),接收的字節(jié)數(shù),還可以清除計(jì)數(shù)。(3)發(fā)送發(fā)送可以分為手動(dòng)發(fā)送和自動(dòng)發(fā)送,兩種發(fā)送都可以選擇是字符發(fā)送還是選擇十六進(jìn)制發(fā)送,

16、先在數(shù)據(jù)發(fā)送區(qū)域輸入要發(fā)送的數(shù)據(jù),如果選擇自動(dòng)發(fā)送在自動(dòng)發(fā)送的控件上打鉤就可以了,還可以選擇自動(dòng)發(fā)送的周期,默認(rèn)周期是1000ms,手動(dòng)發(fā)送點(diǎn)擊手動(dòng)發(fā)送按鈕就可以發(fā)送了。還可以發(fā)送*txt的文件,點(diǎn)擊選擇發(fā)送文件按鈕,選好要發(fā)送的*txt文件,然后點(diǎn)擊發(fā)送文件按鈕。(4)接收接收界面比較簡單,選擇顯示方式就可以了,可以選擇字符顯示和十六進(jìn)制顯示,還可以清空接收區(qū),也可以保存顯示的數(shù)據(jù),默認(rèn)保存在D盤,文件名為wqy.txt。4 軟件測試軟件測試(英語:software testing),描述一種用來促進(jìn)鑒定軟件的正確性、完整性、安全性和質(zhì)量的過程。軟件測試的經(jīng)典定義是:在規(guī)定的條件下對程序進(jìn)行

17、操作,以發(fā)現(xiàn)程序錯(cuò)誤,衡量軟件質(zhì)量,并對其是否能滿足設(shè)計(jì)要求進(jìn)行評估的過程。一個(gè)軟件做好后,必須要進(jìn)行軟件測試。主要是測試內(nèi)容為:81)確定軟件生存周期中的一個(gè)給定階段的產(chǎn)品是否達(dá)到前階段確立的需求的過程。2)程序正確性的形式證明,即采用形式理論證明程序符合設(shè)計(jì)規(guī)約規(guī)定的過程。3)評市、審查、測試、檢查、審計(jì)等各類活動(dòng),或?qū)δ承╉?xiàng)處理、服務(wù)或文件等是否和規(guī)定的需求相一致進(jìn)行判斷和提出報(bào)告。94.1 輔助工具要進(jìn)行串口調(diào)試助手軟件的測試,必須要有輔助的工具,測試該軟件的輔助工具使用了STC89C52單片機(jī),通過USB轉(zhuǎn)串口線與電腦連接,寫好單片機(jī)程序,其功能是單片機(jī)接收到上位機(jī)電腦串口發(fā)來的數(shù)據(jù)

18、,然后發(fā)回給上位機(jī),通過串口調(diào)試助手顯示出來。4.2 發(fā)送測試在發(fā)送數(shù)據(jù)的區(qū)域輸入要發(fā)送的數(shù)據(jù),選擇自動(dòng)發(fā)送或者手動(dòng)發(fā)送,選擇字符發(fā)送或者十六進(jìn)制發(fā)送,還可以發(fā)送*.txt文件,打開要發(fā)送的*.txt文件,然后點(diǎn)擊發(fā)送文件。4.3 接收測試在接受區(qū)看從單片機(jī)發(fā)送來的數(shù)據(jù),可以選擇字符顯示,也可以選擇十六進(jìn)制顯示,還可以保存顯示的數(shù)據(jù),默認(rèn)保存在D盤,文件名為wqy.txt。測試結(jié)果如圖4.1所示。圖3.1 測試時(shí)整個(gè)軟件界面5 總結(jié)學(xué)習(xí)的目的在于應(yīng)用,我們學(xué)習(xí)C+也是這樣,而且更看重應(yīng)用,將來去企業(yè),更是要自己動(dòng)手,做出一點(diǎn)東西來才有用。這次課程設(shè)計(jì)使我學(xué)了很多,是學(xué)完C+之后將自己所學(xué)理論與

19、實(shí)際相結(jié)合的機(jī)會(huì),通過這次基于C+語言的的串口調(diào)試助手的設(shè)計(jì),我自己的理論與實(shí)踐相結(jié)合的能力有了大幅度的提升。在學(xué)習(xí)專業(yè)知識(shí)的基礎(chǔ)上,同時(shí)通過查閱專業(yè)書籍、相關(guān)文獻(xiàn)資來解決實(shí)際工程問題,這鍛煉了我的綜合運(yùn)用各項(xiàng)知識(shí)和資源的能力。使我不論是從理論知識(shí)還是從實(shí)際操縱中都學(xué)到了不少知識(shí),我接觸到更多平時(shí)沒有接觸過的C+ Builder的內(nèi)部處理函數(shù)和控件,同時(shí)也發(fā)現(xiàn)了自己在這方面的很多不足之處。也使我對C+語言以及C+Builder的使用都有了深入的了解。體會(huì)到理論知識(shí)對實(shí)踐有很大的指導(dǎo)作用,只有在正確理論的指引下才能設(shè)計(jì)出合乎實(shí)際需要的軟件。本軟件對于工程師調(diào)試串口具有極強(qiáng)的實(shí)用性,由于時(shí)間關(guān)系,

20、無論是功能還是界面,都還存在很多不足的地方,還需要在功能方面和可靠性方面進(jìn)一步改進(jìn)。致謝在二十多天課程設(shè)計(jì)設(shè)計(jì)和論文撰寫過程中,我非常感謝我的指導(dǎo)教師老師。無論是在準(zhǔn)備期間和系統(tǒng)調(diào)試階段,閉金杰都給了我很大的幫助,衷心地謝謝他。同時(shí)也感謝同班同學(xué)的幫助和大力支持,在課程設(shè)計(jì)的這段時(shí)間中,兄弟們給了我很大幫助,當(dāng)我遇到不懂的地方時(shí),他們都會(huì)幫我解決,謝謝他們!記得有次調(diào)試程序時(shí)自己進(jìn)入了死胡同,總是解決不了,自己無論怎樣也找不到錯(cuò)誤,最后黃永忠同學(xué)幫我看了很久才解決。還有班上很多好朋友,在設(shè)計(jì)過程中都給了我很大幫助,在此就不一一列出。在此,再次感謝所有的人,感謝他們!參考文獻(xiàn)1 譚浩強(qiáng).C語言程

21、序設(shè)計(jì)(第二版).北京:清華大學(xué)出版社,2009年2 譚浩強(qiáng).C+面向?qū)ο蟪绦蛟O(shè)計(jì).北京:清華大學(xué)出版社,2009 年3 趙景波.C+Builder 6.0基礎(chǔ)教程.北京:機(jī)械工業(yè)出版社,2004年4 陸衛(wèi)忠,劉文亮.C+Builder 6程序設(shè)計(jì)教程(第二版).北京:科學(xué)出版社,2011年5 蒙祖強(qiáng).C+Builder程序員成長攻略. 北京:水利水電出版社,2007年6 郭文夷,戴芳勝.C+Builder 6.0程序設(shè)計(jì).西安:西安電子科技大學(xué)出版社,2004年附錄 主要程序串口發(fā)送程序void _fastcall TForm1:Timer1Timer(TObject *Sender) /定

22、時(shí)器1 Label7->Caption=re_time("yyyy' 年'mm'月'dd'日' hh' 時(shí)'nn' 分'ss' 秒'"); /讀取時(shí)間 if(CheckBox4->Checked=true) /判斷是否自動(dòng)發(fā)送 if(Edit2->Text.Length()>0) /判斷時(shí)間 time1_ms=StrToInt(Edit2->Text); /字符串轉(zhuǎn)換為十進(jìn)制 else time1_ms=1000; if(time1_ms>0)

23、 if(time1_ms!=before_time1) /時(shí)間變了就按變了的時(shí)間發(fā)送 before_time1=time1_ms; Timer1->Interval=time1_ms; /改變自動(dòng)發(fā)送的時(shí)間 else time1_ms=1000; before_time1=1000; Timer1->Interval=1000; if(this->YbCommDevice1->Active=false) /*1*/ if(oc_flag=0) oc_flag=1; ShowMessage("請進(jìn)行串口設(shè)置,并打開串口"); else oc_flag=

24、0; char *ch; int nBytes=0; char Buffer1000, *EndPtr; AnsiString t, s,sk; s=Memo2->Lines->GetText(); /提取發(fā)送區(qū)的字符 if(CheckBox3->Checked=true) /判斷是否十六進(jìn)制發(fā)送 while(s.Length()>0) int p=s.Pos(' '); /05 05 06 提取空格 if(p>0) t=s.SubString(1,p-1); /提取空格前的字符 s=s.SubString(p+1,s.Length().Trim(

25、);/提取空格后的字符-Length為測字符串長度 Trim是去掉前后空格 BuffernBytes+=strtol(t.c_str(), &EndPtr, 16) ; /轉(zhuǎn)換為十六進(jìn)制放入緩沖區(qū) else t=s; s="" BuffernBytes+=strtol(t.c_str(), &EndPtr, 16); /轉(zhuǎn)換為十六進(jìn)制 else int len=0,ci; len=s.Length(); if(len>0) ch=s.c_str(); for(ci=0;ci<len;ci+) BuffernBytes+=*(ch+ci); tx_

26、cout+=nBytes; Edit9->Text=IntToStr(tx_cout); YbCommDevice1->Write(Buffer, nBytes); 串口接收程序void _fastcall TForm1:Timer2Timer(TObject *Sender) /定時(shí)器2 unsigned char Buf8192; if(first_flag=0) /第一次打開時(shí)要清空一次發(fā)送區(qū) Memo2->Clear(); first_flag=1; if(this->YbCommDevice1->Active=true) Shape1->Brush

27、->Color=clLime; /串口燈亮 Edit11->Text="打開" int n=YbCommDevice1->Read(Buf,8192); /收到n個(gè)字節(jié) if(n) AnsiString s; if(CheckBox2->Checked=true) / CheckBox2判斷接收是否十六進(jìn)制顯示 for(int i=0; i<n; i+) s+=IntToHex(Bufi,2)+" " /轉(zhuǎn)換為十六進(jìn)制 else for(int i=0; i<n; i+) s+=char(Bufi);/In)tToStr(String( Bufi); if(!s.IsEmpty() Memo1->Lines->Add(s); /顯示接收的內(nèi)容 rx_cout+=n; /接收計(jì)數(shù) Edit10->Text=IntToStr(rx_cout); /顯示接收的字節(jié) Serial Debugging Assistant DesignAuthor:Qiuyuan Wu【Abstract】Serial debugging assistant is a serial port deb

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論