大地资源网视频在线观看新浪,日本春药精油按摩系列,成人av骚妻潮喷,国产xxxx搡xxxxx搡麻豆

您現在的位置:智能制造網>技術中心>串口波特率轉換的純軟件實現--向麗

直播推薦

更多>

企業動態

更多>

推薦展會

更多>

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

2012年02月24日 10:37:58人氣:1032來源:武漢波仕電子有限公司

 

串口波特率轉換的純軟件實現
                    武漢波仕電子有限公司 ________
 
串口通信,就是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口號碼為116號。COM串口號可以從操作系統的“設備管理器”只能夠的“端口”看到。波特率的可選擇范圍為:25600012800011520057600384002880019200144009600 480024001200600。校驗位可選擇:n(無)、o(偶)、e(奇)。數據位可選擇:87654。停止位可選擇10
設置好串口格式后,按“打開串口”。注意AB兩個串口都要打開。成功打開串口后會在“打開串口”按鈕的旁邊顯示紅色的圓圈。“打開串口”按鈕下面為“清空計數”按鈕和本串口接收和發送數據的個數。正常情況下,由于串口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 mEvent    '事件發生
            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,zui后補空格
                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的兩個串口進行波特率等格式的設置,而兩個串口在內部進行數據透明傳輸。這種產品就是硬件波特率轉換器,我們將以另外文章《串口波特率轉換的純硬件實現》予以介紹。
  


 

全年征稿/資訊合作 聯系郵箱:1271141964@qq.com

免責聲明

  • 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.xashilian.com。違反者本網將追究相關法律責任。
  • 企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
  • 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
  • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。

<
更多 >

工控網機器人儀器儀表物聯網3D打印工業軟件金屬加工機械包裝機械印刷機械農業機械食品加工設備制藥設備倉儲物流環保設備造紙機械工程機械紡織機械化工設備電子加工設備水泥設備海洋水利裝備礦冶設備新能源設備服裝機械印染機械制鞋機械玻璃機械陶瓷設備橡塑設備船舶設備電子元器件電氣設備


我要投稿
  • 投稿請發送郵件至:(郵件標題請備注“投稿”)1271141964.qq.com
  • 聯系電話0571-89719789
工業4.0時代智能制造領域“互聯網+”服務平臺
智能制造網APP

功能豐富 實時交流

智能制造網小程序

訂閱獲取更多服務

微信公眾號

關注我們

抖音

智能制造網

抖音號:gkzhan

打開抖音 搜索頁掃一掃

視頻號

智能制造網

公眾號:智能制造網

打開微信掃碼關注視頻號

快手

智能制造網

快手ID:gkzhan2006

打開快手 掃一掃關注
意見反饋
關閉
企業未開通此功能
詳詢客服 : 0571-87858618
主站蜘蛛池模板: 商水县| 乡宁县| 永嘉县| 舞钢市| 新乐市| 介休市| 镇江市| 吉首市| 巍山| 广南县| 定边县| 雷州市| 女性| 赤壁市| 库尔勒市| 松滋市| 陵水| 临朐县| 玉溪市| 望都县| 广德县| 西充县| 竹北市| 富裕县| 荥阳市| 南华县| 社会| 平遥县| 锡林浩特市| 章丘市| 河池市| 黄陵县| 皮山县| 正镶白旗| 信丰县| 漯河市| 上杭县| 和静县| 朝阳市| 吉首市| 会东县|