广 告
信息技术应用 >>  源代码>> VB2008串口发送和接收数据
热 

VB2008串口发送和接收数据
作者:转载    转贴自:转载    点击数:6476    文章录入: zhaizl

Public Class Form1
Dim mSTR As String
Dim strData As String
Dim strDat As String
'Dim mSize1 As Integer
Dim mRecvByte() As Byte
Dim Hexsj As String
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
'mSize1 = mSize
ReDim mRecvByte(mSize - 1)
SerialPort1.Read(mRecvByte, 0, mSize)
'mSTR = Encoding.Default.GetString(mRecvByte, 0, mSize)
BeginInvoke(New EventHandler(AddressOf ONMLoadA), SerialPort1.BytesToRead()) '使用委托方式显示接收到的字符串
End Sub
Sub ONMLoadA(ByVal sender As System.Object, ByVal e As System.EventArgs) '委托
'TextBox4.Text = mSTR
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 2 '处理为ASCII字符
sj = Val("&H" & Mid(strData, i, 2))
If sj < 32 Or sj > 128 Then '当接收字节中有Chr(0)时,其后字符被切割
strDat = strDat & "."
Else
strDat = strDat & Chr(sj)
End If
Next
TextBox1.Text = strDat '显示字符
TextBox2.Text = strData '显示为16进制
TextBox3.Text = Len(strData) / 2
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SerialPort1.BaudRate = 9600 '波特率设为
SerialPort1.PortName = "com1" '端口为串口
SerialPort1.ReceivedBytesThreshold = 1
If SerialPort1.IsOpen = False Then SerialPort1.Open() '打开串口
Hexsj = "002702013524200239892700020020010201E9030D07"
TxtSend.Text = Hexsj
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
strData = ""
strDat = ""
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim bytHex() As Byte
ReDim bytHex((Len(Hexsj) \ 2) - 1)
Dim i As Integer
For i = 1 To Len(Hexsj) Step 2
bytHex((i - 1) / 2) = Val("&H" & Mid(Hexsj, i, 2))
Next
SerialPort1.Write(bytHex, 0, bytHex.Length)
End Sub
End Class
  • 上一篇文章: 来访统计的JS代码

  • 下一篇文章: Request.ServerVariables
  •   最新5篇热点文章
      最新5篇推荐文章
      相关文章
    ·给ueditor编辑器赋值[302]
    ·美国宇航局打造未来超级火箭 起…[617]
    ·追忆潘家铮院士:情注水电的人…[617]
    ·英国45型驱逐舰试射海毒蛇防空…[617]
    ·再读钱学森:意义在论文之外[617]
    ·C# Request.ServerVariables2[695]
    ·Request.ServerVariables[698]
    ·浅析C# List实现原理[700]
    ·浅析C# List实现原理[700]
    ·Request.ServerVariables 获取…[701]
    ·VB2008读写文件[1030]
    ·浅谈VB2008与VB6.0相比的变化[1213]
     
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)