《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 串口波特率轉換的純軟件實現
串口波特率轉換的純軟件實現
摘要: 串口通信,就是RS-232/RS-485通信,要求通信的雙方波特率等通信格式一樣才可以通信成功。可是在許多情況下,兩種不同格式比如不同波特率的串口也要相互通信,這就必須進行串口波特率等格式的轉換。
Abstract:
Key words :

                   

 

串口通信,就是RS-232/RS-485通信,要求通信的雙方波特率等通信格式一樣才可以通信成功。可是在許多情況下,兩種不同格式比如不同波特率的串口也要相互通信,這就必須進行串口波特率等格式的轉換。本文介紹了如何用純軟件實現串口波特率的轉換。

如果串口設備1與串口設備2之間需要通信,但是它們之間的通信波特率不一樣。純軟件實現串口波特率的轉換的原理就是利用計算機的兩個串口,稱為串口A和串口B,分別設置為不同的波特率、不同的校驗位、不同的數據位和不同的停止位。其中串口A按照串口A設置的波特率等格式接收數據立即從串口B按照串口B設置的波特率等格式發送出去,同樣串口B以串口B設置波特率等格式收到的數據立即從串口A以串口A設置的波特率等格式發送出去。

 串口波特率轉換的純軟件實現

將計算機的串口A接設備1,串口A的通信波特率設置為設備1的波特率、校驗位、數據位和停止位。將計算機的串口B接設備2,串口B的通信波特率設置為設備2的波特率、校驗位、數據位和停止位。計算機必須至少有兩個RS-232串口,擴展串口可以采用USB-串口轉換器等。這樣就實現了串口設備1與串口設備2之間的通信。

 串口波特率轉換的純軟件實現
串口波特率轉換軟件的界面如圖。左邊分別是兩個串口的設置框,分別可以設置COM口的號碼、波特率、校驗位、數據位、停止位,默認的格式為(9600,N,8,1)。可以選擇的COM口號碼為1到16號。COM串口號可以從操作系統的“設備管理器”只能夠的“端口”看到。波特率的可選擇范圍為:256000、128000、115200、57600、38400、28800、19200、14400、9600、 4800、2400、1200、600。校驗位可選擇:n(無)、o(偶)、e(奇)。數據位可選擇:8、7、6、5、4。停止位可選擇1和0。

設置好串口格式后,按“打開串口”。注意A和B兩個串口都要打開。成功打開串口后會在“打開串口”按鈕的旁邊顯示紅色的圓圈。“打開串口”按鈕下面為“清空計數”按鈕和本串口接收和發送數據的個數。正常情況下,由于串口A接收到的數據都立即發送給了串口B,所以串口A接收的計數與串口B發送的計數時一樣的。同理串口B接收的計數與串口A發送的計數時一樣的。

串口波特率轉換軟件的界面右邊為測試和檢測部分,正常工作時不需要操作。按“手動發送A串口”可以測試串口A的設置是否生效,是否可以正確與設備1通信,接收到的數據顯示在“接收區A”框內。串口B的部分是同樣的功能。右下角有“字符格式”和“十六進制”的選項,默認為“字符格式”。當選擇“十六進制”時,本軟件可以實現16進制數據的格式轉換,特別適合MODBUS等工控軟件

如果在軟件界面上只打開一個串口,比如串口A或者串口B,那么本軟件就是一個功能齊全的串口調試助手軟件,可以進行每個串口的設置、數據收發等。

本軟件用Visual Basic軟件編寫,串口用MSCOMM控件實現。核心功能就是將Mscomm1接收的數據立即送到Mscomm2的發送區。難點在于對16進制數據的轉換處理。

Mscomm的核心代碼如下:

Private Sub MSComm1_OnComm()

    Dim BytReceived() As Byte

    Dim strBuff As String

    Dim i As Integer

    Select Case MSComm1.CommEvent    '事件發生

            Case 2

           MSComm1.InputLen = 0     '讀入緩沖區全部內容

            strBuff = MSComm1.Input  '讀入到緩沖區

            If MSComm1.InputMode = comInputModeBinary Then

            BytReceived() = strBuff  '如果是二進制接收模式則進行數據處理,否則直接顯示字符串

            For i = 0 To UBound(BytReceived)

             If Len(Hex(BytReceived(i))) = 1 Then

       strData = strData & "0" & Hex(BytReceived(i)) & " "

'如果只有一個字符,則前補0,如F顯示0F,最后補空格

                Else                      '方便顯示觀察如: 00 0F FE

                    strData = strData & Hex(BytReceived(i)) & " "

                End If

            Next

             Text1 = strData

              Call hexSend2          '發送一個16進制

              strData = ""

 

        Else

            Text1 = Text1 & strBuff

           If MSComm2.PortOpen = False Then

           MsgBox "請打開串口B"

            End If

            On Error GoTo uerror3

            MSComm2.Output = strBuff

            Label14.Caption = Label14.Caption + Len(strBuff) '發送計數

           End If

       End Select

uerror3:  

  End Sub

本文介紹的串口波特率轉換的純軟件方法和程序,對不同格式之間的串口通信具有一定的使用價值。本軟件不僅僅實現了波特率的轉換,還同時實現了校驗位、數據位和停止位的轉換。文中介紹的軟件可以從波仕電子的網站下載。純軟件波特率轉換的不足之處在于占用了一臺計算機,并且必須配有兩個專門用于波特率轉換的串口。如果要實現方便簡單的波特率轉換,還是要用具有雙串口的單片機或者FPGA。通過對單片機或者FPGA的兩個串口進行波特率等格式的設置,而兩個串口在內部進行數據透明傳輸。這種產品就是硬件波特率轉換器,我們將以另外文章《串口波特率轉換的純硬件實現》予以介紹。

 

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧美在线免费观看| 欧美日韩岛国| 一区二区三区日韩欧美精品| 亚洲第一毛片| 久久超碰97中文字幕| 亚洲欧美在线免费观看| 亚洲一区图片| 亚洲深爱激情| 亚洲夜晚福利在线观看| 亚洲一区二区免费在线| 一区二区久久久久| 亚洲精品影院| 日韩小视频在线观看专区| 亚洲美女av电影| 日韩亚洲在线| 中文亚洲欧美| 亚洲欧美国产精品va在线观看| 亚洲视频综合| 亚洲欧美日韩精品在线| 亚洲综合日本| 欧美夜福利tv在线| 午夜亚洲福利| 久久精品成人一区二区三区蜜臀| 久久精品亚洲热| 亚洲韩国青草视频| 久久精品久久综合| 亚洲精品欧美激情| 在线一区二区三区做爰视频网站| 亚洲一卡二卡三卡四卡五卡| 亚洲欧美电影院| 欧美在线www| 久久综合九色综合网站| 欧美sm极限捆绑bd| 欧美日韩免费区域视频在线观看| 欧美日韩中文字幕在线| 国产精品久久久久久久久| 国产欧美日韩精品专区| 好看不卡的中文字幕| 亚洲国产乱码最新视频| 99精品欧美一区二区三区 | 日韩视频在线播放| 亚洲一级黄色| 久久精品国产精品| 日韩视频三区| 午夜久久影院| 久久在线免费| 欧美日韩在线不卡一区| 国产精品一区在线播放| 在线观看精品一区| 一本色道婷婷久久欧美| 欧美一区二区三区在线| 亚洲肉体裸体xxxx137| 亚洲天堂av在线免费观看| 欧美在线免费观看视频| 欧美大秀在线观看| 国产精品毛片高清在线完整版| 国产亚洲欧美一区在线观看| 亚洲国产高清视频| 亚洲在线一区二区| 亚洲精品久久久久久久久久久| 亚洲夜晚福利在线观看| 久久久久久日产精品| 欧美另类女人| 国产在线拍揄自揄视频不卡99| 亚洲欧洲一区二区三区在线观看| 亚洲免费影院| 亚洲精品中文字幕在线| 欧美一区二区高清在线观看| 欧美国产一区在线| 国产精品综合| 亚洲精品欧美精品| 欧美一区二区黄| 一区二区三区视频在线| 久久久噜噜噜久久久| 欧美日韩在线免费观看| 精品1区2区| 午夜精品福利一区二区三区av| 亚洲乱码国产乱码精品精98午夜| 久久成人精品无人区| 欧美视频在线观看一区二区| 一区在线影院| 亚洲欧美卡通另类91av| 亚洲视频在线播放| 欧美成人综合网站| 国产午夜精品美女毛片视频| 亚洲裸体视频| 亚洲欧洲日韩女同| 久久久久久久久久码影片| 国产精品色婷婷久久58| 亚洲免费高清视频| 亚洲黄色av| 久久精品夜色噜噜亚洲a∨| 国产精品久久国产精麻豆99网站| 亚洲欧洲日本专区| 亚洲成人资源| 国产视频在线观看一区二区三区| 亚洲国产精品一区二区第一页 | 一区二区三区三区在线| 免费成人在线观看视频| 国产欧美一级| 亚洲一区二区三区在线| 在线一区二区三区四区五区| 欧美成在线观看| 在线播放日韩欧美| 久久激情久久| 久久久女女女女999久久| 国产麻豆9l精品三级站| 一区二区三区日韩精品| 一本一道久久综合狠狠老精东影业| 免费国产一区二区| 原创国产精品91| 久久精品国产第一区二区三区最新章节| 欧美一级在线播放| 国产精品久久久久久超碰| 一区二区三区欧美亚洲| 亚洲一二三区精品| 欧美特黄一级| 一本久道久久综合中文字幕| 91久久久久久| 欧美成人免费播放| 亚洲高清不卡一区| 亚洲美洲欧洲综合国产一区| 女同一区二区| 亚洲韩国一区二区三区| 亚洲日本成人| 欧美国产精品v| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美电影免费| 91久久久久久国产精品| 亚洲精选中文字幕| 欧美三级乱码| 亚洲综合二区| 久久精品国产69国产精品亚洲| 国产一区自拍视频| 亚洲福利专区| 欧美精品www在线观看| 亚洲美女精品成人在线视频| 正在播放亚洲| 国产精品久久久久久久久搜平片| 亚洲一区二区三区欧美| 欧美影院在线| 在线观看日韩欧美| 99精品视频免费观看视频| 欧美三区在线视频| 亚洲欧美日韩中文视频| 久久久久国产精品午夜一区| 一区二区在线观看视频| 亚洲精品在线电影| 欧美天天综合网| 午夜亚洲性色视频| 久久中文字幕导航| 91久久在线播放| 亚洲尤物在线视频观看| 国产精品综合| 最新国产成人av网站网址麻豆| 欧美另类极品videosbest最新版本| 一区二区三区.www| 久久久精品一区| 亚洲日本免费| 欧美一区二区三区成人| 永久免费毛片在线播放不卡| 亚洲每日在线| 国产精品一区二区a| 亚洲国产日韩在线| 国产精品久久久久77777| 久久精品亚洲精品国产欧美kt∨| 欧美了一区在线观看| 亚洲男女毛片无遮挡| 蜜月aⅴ免费一区二区三区| 日韩一级大片| 久久精品国产成人| 亚洲精品一区二区三区av| 欧美一区二区三区久久精品茉莉花 | av成人黄色| 久久精品三级| 亚洲美女在线一区| 久久国产精品99久久久久久老狼| 亚洲国产精品一区二区www| 午夜国产一区| 亚洲欧洲另类国产综合| 久久国产精品一区二区| 亚洲精品视频免费观看| 久久精品亚洲国产奇米99| 日韩一区二区精品| 久久一区二区三区四区| 亚洲手机视频| 欧美国产极速在线| 欧美在线三区| 国产精品www色诱视频| 最新精品在线| 国产欧美一区在线| 亚洲视频每日更新| 伊大人香蕉综合8在线视| 销魂美女一区二区三区视频在线| 亚洲电影激情视频网站| 欧美中文字幕视频| 一本色道久久综合狠狠躁篇怎么玩 | 麻豆精品91| 欧美亚洲综合久久| 国产精品国产三级国产专播品爱网 |