你现在位置:首页>技术论文>数据通讯>正文
VB2005中SerialPort发送与接收16进制数据
日期:2011-1-10 10:13:16 点击:
来源:本站整理
作者:
点击【】放大字体.

上一篇帖子介绍了VB2005中SerialPort的基本用法,需要注意的是WriteLine是在发送字符串后加了个换行符(vbLf),ReadLine接收时遇到换行符接收才结束。IsOpen的用法只能判断用open方法打开的串口,其他程序已打开的串口是无法判断的,所以判断未使用的串口还要用try或on error的方法判断。

WW.W_PLCJS_COM-PLC-技.术_网

上位机和单片机通信用16进制比较多,下面是16进制通信的例子,数据发送用Write,数据接收用ReadByte。

——可——编——程——控-制-器-技——术——门——户

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

Imports System.IO.Ports         使用SerialPort所引用的命名空间

WW.W_PLC※JS_C,OM-PL,C-技.术_网

Public Class Form1

——可——编——程——控-制-器-技——术——门——户

    Dim fx() As Byte        待发送数据数组
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

    Dim Rc() As Byte        接收数据数组
WWW.PLCJS.COM——可编程控制器技术门户

WWW_PL※CJS_COM-PLC-技.术_网

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
plcjs.技.术_网

        If Button1.Text = "打开串口" Then
plcjs.技.术_网

            SerialPort1.PortName = "COM1"
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

            SerialPort1.Open()                       串口打开与关闭
WWW_P※LCJS_COM-PLC-)技.术_网

            Button1.Text = "关闭串口"
plcjs.技.术_网

            Button2.Enabled = True
WWW_PLCJS@_COM%-PLC-技.术_网

            Timer1.Enabled = True
WWW_PLCJS_COM-PLC-技.术_网

        Else
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

            If SerialPort1.IsOpen Then SerialPort1.Close()
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

            Button1.Text = "打开串口"
P.L.C.技.术.网——可编程控制器技术门户

            Timer1.Enabled = False
WWW_PLCJS_COM-PLC-技.术_网

            Button2.Enabled = False
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

        End If
WWW_PLC※JS_COM-PmLC-技.术_网

    End Sub

plcjs.技.术_网

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

    待发送数据处理与发送
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
WW.W_PLC※JS_C,OM-PL,C-技.术_网

        Dim i As Integer
WW.W_PLCJS_COM-PLC-技.术_网

        Dim n As Integer
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

        Dim Cmd As String = TextBox1.Text
plcjs.技.术_网

        n = Len(Cmd) \ 2
WWW_PLCJS@_COM%-PLC-技.术_网

        ReDim fx(n)
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

        For i = 1 To n
WWW_P※LCJS_COM-PLC-)技.术_网

            fx(i) = CByte("&H" & Mid(Cmd, 2 * i - 1, 2))
WWW_P※LCJS_CO※M-PLC-技-.术_网

        Next
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

        SerialPort1.Write(fx, 1, n)     发送数组fx第1到n数据
——可——编——程——控-制-器-技——术——门——户

    End Sub
WWW_P※LCJS_COM-PLC-)技.术_网

WWW_P※LCJS_COM-PLC-)技.术_网

    数据定时接收与显示
WWW_P※LCJS_CO※M-PLC-技-.术_网

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
P.L.C.技.术.网——可编程控制器技术门户

        Dim StrRc As String
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

        Dim i As Integer
WWcW_PLCJS_COM-PLC-技.术_网

        Dim n As Integer
WWW_PLCJS_COM-PLC-技.术_网

        n = SerialPort1.BytesToRead     读缓冲区数据量,有数据则接收

本新闻共2页,当前在第11 2  
plcjs.技.术_网

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行