免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

vb.net讀取可用串口 vbapi串口讀寫模塊

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

不是很明白你的題意

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:空間域名、雅安服務器托管、營銷軟件、網站建設、鄖西網站維護、網站推廣。

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

這里的意思是把每個字節數據轉換成了十六進制,每個字節占兩個字符

如果你串口收到的4個字節數據:43,27,56,200

那么你的結果是:2B1B38C8

即receivebytes.Text="2B1B38C8"

不足兩位的補0

如果你串口收到的4個字節數據:3,27,56,200

那么你的結果是:031B38C8

即receivebytes.Text="031B38C8"

怎樣在vb中自動檢測到可用串口號的具體程序代碼

vb.net的話

For

Each

sp

As

String

In

My.Computer.Ports.SerialPortNames

cbxport.Items.Add(sp)

Next

vb6.0的話要調用API查看串口相關信息存在的注冊表。

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM

通過讀注冊表的方法獲得串口數量,當然也可以獲得串口號了。

Option

Explicit

Private

Declare

Function

RegOpenKey

Lib

"advapi32.dll

"

Alias

"RegOpenKeyA

"

(ByVal

hKey

As

Long,

ByVal

lpSubKey

As

String,

phkResult

As

Long)

As

Long

Private

Declare

Function

RegQueryInfoKey

Lib

"advapi32.dll

"

Alias

"RegQueryInfoKeyA

"

(ByVal

hKey

As

Long,

ByVal

lpClass

As

String,

lpcbClass

As

Long,

ByVal

lpReserved

As

Long,

lpcSubKeys

As

Long,

lpcbMaxSubKeyLen

As

Long,

lpcbMaxClassLen

As

Long,

lpcValues

As

Long,

lpcbMaxValueNameLen

As

Long,

lpcbMaxValueLen

As

Long,

lpcbSecurityDescriptor

As

Long,

lpftLastWriteTime

As

Long)

As

Long

Private

Const

HKEY_LOCAL_MACHINE

=

H80000002

'

獲得當前系統的

COM

口的數量

Function

GetCOMCount()

As

Integer

Dim

ret

As

Long,

cntCOM

As

Long

RegOpenKey

HKEY_LOCAL_MACHINE,

"HARDWARE\DEVICEMAP\SERIALCOMM

",

ret

RegQueryInfoKey

ret,

"

",

0,

0,

0,

0,

0,

cntCOM,

0,

0,

0,

GetCOMCount

=

cntCOM

End

Function

Private

Sub

Command1_Click()

MsgBox

"您的機器有

"

GetCOMCount

"

個串口。

",

vbOKOnly,

"串口數量

"

End

Sub

VB.NET使用AxMSComm實現串口通信的發送讀取問題?

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

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

vb.net 怎么用事件觸發的方式讀取串口數據

首先:

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

其次:

我覺得用串口的接收數據事件更好一些。

下面代碼供參考:

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

'串口接收數據事件,其實比用定時器更好,

'觸發事件的條件可以自己在form_load中設置ReceivedBytesThreshold屬性數值,默認為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) '顯示結果

Me.TextBox1.Text = "結果:" 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讀取可用串口 vbapi串口讀寫模塊
本文URL:http://m.newbst.com/article40/dogpeeo.html

成都網站建設公司_創新互聯,為您提供ChatGPT、虛擬主機、軟件開發、網站導航、網站建設、搜索引擎優化

廣告

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

成都定制網站建設