成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

vb.net串口源碼 vb串口編程

VB.net 串口傳送回數(shù)據(jù)處理的問題

使用委托方式處理:

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供新羅網(wǎng)站建設(shè)、新羅做網(wǎng)站、新羅網(wǎng)站設(shè)計(jì)、新羅網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、新羅企業(yè)網(wǎng)站模板建站服務(wù),十余年新羅做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

Public?Class?Form1

Dim?mSTR?As?String

Dim?strData?As?String

Dim?strDat?As?String

Dim?mRecvByte()?As?Byte

Dim?Hexsj?As?String

Dim?form2?As?Form

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

Dim?mSize?As?Integer?=?Me.SerialPort1.BytesToRead

ReDim?mRecvByte(mSize?-?1)

SerialPort1.Read(mRecvByte,?0,?mSize)

BeginInvoke(New?EventHandler(AddressOf?ONMLoadA),?SerialPort1.BytesToRead())?'使用委托方式顯示接收到的字符串

End?Sub

Sub?ONMLoadA(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?'委托

strDat?=?""

TextBox1.Text?=?""

Dim?i?As?Integer

For?i?=?0?To?UBound(mRecvByte)?'mSize?-?1

strData?=?strData??IIf(mRecvByte(i)??15,?Hex(mRecvByte(i)),?"0"??Hex(mRecvByte(i)))??"?"

Next

Dim?sj?As?Byte

For?i?=?1?To?Len(strData)?Step?3?'處理為ASCII字符

sj?=?Val("H"??Mid(strData,?i,?2))

If?sj??32?Or?sj??128?Then?'當(dāng)接收字節(jié)中有Chr(0)時,其后字符被切割

strDat?=?strDat??"."

Else

strDat?=?strDat??Chr(sj)

End?If

Next

TextBox1.Text?=?strDat?'顯示字符

TextBox2.Text?=?strData?'顯示為16進(jìn)制

TextBox3.Text?=?Len(strData)?/?3

End?Sub

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

vb.net的話

For

Each

sp

As

String

In

My.Computer.Ports.SerialPortNames

cbxport.Items.Add(sp)

Next

vb6.0的話要調(diào)用API查看串口相關(guān)信息存在的注冊表。

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM

通過讀注冊表的方法獲得串口數(shù)量,當(dāng)然也可以獲得串口號了。

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

'

獲得當(dāng)前系統(tǒng)的

COM

口的數(shù)量

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

"您的機(jī)器有

"

GetCOMCount

"

個串口。

",

vbOKOnly,

"串口數(shù)量

"

End

Sub

vb.net2010十六進(jìn)制讀取串口的問題

不是很明白你的題意

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

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

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

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

即receivebytes.Text="2B1B38C8"

不足兩位的補(bǔ)0

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

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

即receivebytes.Text="031B38C8"

文章名稱:vb.net串口源碼 vb串口編程
URL地址:http://jinyejixie.com/article34/hephpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)營銷型網(wǎng)站建設(shè)、電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)建站公司、網(wǎng)站營銷

廣告

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

成都網(wǎng)站建設(shè)公司