真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vb.net搜索串口 vbnet串口通信如何編寫(xiě)

VB與VB.NET串口及以太網(wǎng)通迅

關(guān)于串口通訊的問(wèn)題:

創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)營(yíng)銷(xiāo)型網(wǎng)站、網(wǎng)站重做改版、潞城網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場(chǎng)景定制商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為潞城等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

很明顯,你還不知道(不會(huì)、不習(xí)慣)使用事件驅(qū)動(dòng)的方式接收數(shù)據(jù)。

建議你仔細(xì)看看串口組件(無(wú)論VB6還是VB.net)的OnComm事件,你的問(wèn)題很容易解決。

關(guān)于以太網(wǎng)通訊:

在TCP通訊中端口確實(shí)可以重用,你百度一下“TCP端口重用”能查到很多示例。

但絕大多數(shù)情況下不推薦端口重用,而應(yīng)該采取服務(wù)器端建立連接池的方法。

或者,干脆不用TCP,用UDP解決也可以。

怎樣在vb中自動(dòng)檢測(cè)到可用串口號(hào)的具體程序代碼

j = 0

For i = 1 To 16 Step 1

If comISP.PortOpen = True Then '先關(guān)閉串口

comISP.PortOpen = False

End If

comISP.CommPort = i

On Error Resume Next '說(shuō)明當(dāng)一個(gè)運(yùn)行時(shí)錯(cuò)誤發(fā)生時(shí),控件轉(zhuǎn)到緊接著發(fā)生錯(cuò)誤的語(yǔ)句之后的語(yǔ)句,并在此繼續(xù)運(yùn)行。訪問(wèn)對(duì)象時(shí)要使用這種形式而不使用 On Error GoTo。

comISP.PortOpen = True

If Err.Number 8002 Then '無(wú)效的串口號(hào)。這樣可以檢測(cè)到虛擬串口,如果用Err.Number = 0的話檢測(cè)不到虛擬串口

If j = 0 Then

j = i

End If

cboPort.AddItem "COM" i '生成串口選擇列表

End If

comISP.PortOpen = False

Next i

If j = 1 Then

cboPort.Text = "COM" j '自動(dòng)打開(kāi)可用的最小串口號(hào)

comISP.CommPort = j

comISP.PortOpen = True

cmdOpenCom.Caption = "關(guān)閉串口"

shpCOM.FillColor = vbGreen

If Err.Number = 8005 Then '串口已打開(kāi),vbExclamation '

comISP.PortOpen = False

cboPort.Text = ""

cmdOpenCom.Caption = "打開(kāi)串口"

shpCOM.FillColor = vbRed

End If

End If

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

首先:

textbox里沒(méi)有顯示,是因?yàn)镾erialPort1和TextBox2不是同一線程創(chuàng)建的,需要跨線程操作。需要用到委托,這樣才能顯示出來(lái)。

其次:

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

下面代碼供參考:

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

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

'觸發(fā)事件的條件可以自己在form_load中設(shè)置ReceivedBytesThreshold屬性數(shù)值,默認(rèn)為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 串口接收問(wèn)題

0x3F表示字符"?"

估計(jì)是你的發(fā)送指令不正確,設(shè)備返回你發(fā)送的指令后面加''?""

VB.NET接收串口數(shù)據(jù)問(wèn)題

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

老兄,提問(wèn)還是給點(diǎn)懸賞分嘛,不要吝嗇哪點(diǎn)分,知識(shí)是無(wú)價(jià)的,你給得越多,回答你的人才會(huì)越多。


當(dāng)前名稱(chēng):vb.net搜索串口 vbnet串口通信如何編寫(xiě)
網(wǎng)站URL:http://weahome.cn/article/dodeips.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部