vb.net串口讀取 vb串口接收程序

vb.net2010十六進制讀取串口的問題

不是很明白你的題意

創(chuàng)新互聯(lián)專注于嘉陵企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開發(fā),商城系統(tǒng)網(wǎng)站開發(fā)。嘉陵網(wǎng)站建設(shè)公司,為嘉陵等地區(qū)提供建站服務(wù)。全流程定制設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

strHex = strHex + [String].Format("{0:X2} "

這里的意思是把每個字節(jié)數(shù)據(jù)轉(zhuǎn)換成了十六進制,每個字節(jié)占兩個字符

如果你串口收到的4個字節(jié)數(shù)據(jù):43,27,56,200

那么你的結(jié)果是:2B1B38C8

即receivebytes.Text="2B1B38C8"

不足兩位的補0

如果你串口收到的4個字節(jié)數(shù)據(jù):3,27,56,200

那么你的結(jié)果是:031B38C8

即receivebytes.Text="031B38C8"

VB.NET中如何處理串口通信接收的數(shù)據(jù)?

你可以預(yù)先約定一個截止附,讀取的字節(jié)統(tǒng)統(tǒng)放到緩存區(qū)里,直到讀到截止附再處理、顯示。

vb.net 怎么用事件觸發(fā)的方式讀取串口數(shù)據(jù)

首先:

textbox里沒有顯示,是因為SerialPort1和TextBox2不是同一線程創(chuàng)建的,需要跨線程操作。需要用到委托,這樣才能顯示出來。

其次:

我覺得用串口的接收數(shù)據(jù)事件更好一些。

下面代碼供參考:

'----------------------

'串口接收數(shù)據(jù)事件,其實比用定時器更好,

'觸發(fā)事件的條件可以自己在form_load中設(shè)置ReceivedBytesThreshold屬性數(shù)值,默認為ReceivedBytesThreshold=1

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

Dim strRecvData As String = ""

strRecvData = SerialPort1.ReadExisting

Call disPlayComData(strRecvData)

End Sub

Delegate Sub callback(ByVal strT As String) '定義委托

Sub showString(ByVal comdata As String) '顯示結(jié)果

Me.TextBox1.Text = "結(jié)果:" comdata

End Sub

Sub disPlayComData(ByVal strTmp As String) '判定是否為跨線程

If Me.TextBox1.InvokeRequired Then

Dim d As New callback(AddressOf showString)

Me.Invoke(d, New Object() {strTmp})

Else

Me.TextBox1.Text = strTmp

End If

End Sub

VB.NET串口讀寫PLC內(nèi)部地址

再發(fā)讀D區(qū)命令的時候緩存區(qū)大小就該變了啊.

哪來的緩存區(qū)大小變化。設(shè)定好了就不動了。

按你寫的 順序處理報文就可以了。

每次處理完一次報文應(yīng)答,就清空一次發(fā)送和接收緩存區(qū)。

vb.net 串口收發(fā)數(shù)據(jù)有問題

不知道你是不是用51單片機往串口發(fā)數(shù)據(jù),是的話那是因為51的sbuf最多存放8個字節(jié),所以你發(fā)12個字節(jié)會分成兩次發(fā)完。還有在接收的時候最好定義好通信協(xié)議,比如加一個偵頭,一個偵尾,通過這兩個字節(jié)的內(nèi)容來接收數(shù)據(jù)。

老兄,提問還是給點懸賞分嘛,不要吝嗇哪點分,知識是無價的,你給得越多,回答你的人才會越多。

VB.NET使用AxMSComm實現(xiàn)串口通信的發(fā)送讀取問題?

上面的代碼看不出問題,如果初始化串口控件時已經(jīng)注冊了AxMSComm1_OnComm,有數(shù)據(jù)接收應(yīng)該能觸發(fā),至于為什么沒有觸發(fā),要看看你的接收方是否已經(jīng)收到你的發(fā)出指令,是否已經(jīng)有響應(yīng)數(shù)據(jù)回發(fā)。

建議分開調(diào)試,用一個通用的串口助手,如格西烽火串口助手之類的,分別調(diào)試你的上位機和下位機。格西烽火串口助手能輕松的定制如你上面的發(fā)送數(shù)據(jù)。

分享文章:vb.net串口讀取 vb串口接收程序
文章起源:http://muchs.cn/article24/dooohje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作建站公司網(wǎng)站設(shè)計、搜索引擎優(yōu)化靜態(tài)網(wǎng)站、用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)