以下代码 读取电子秤时,有时候可以返回数据,有时候不行,不稳定。怎么回事呢?
Imports System.IO.Ports
Public Class Form1 Shared _serialPort As SerialPort Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
_serialPort = New SerialPort()
AddHandler _serialPort.DataReceived, AddressOf EventReceiveData
If _serialPort.IsOpen = True Then
_serialPort.Close()
End If
_serialPort.PortName = "COM1"
_serialPort.BaudRate = 9600
_serialPort.Parity = Parity.None
_serialPort.DataBits = 8
_serialPort.StopBits = StopBits.One
_serialPort.Handshake = Handshake.None
_serialPort.ReadTimeout = 500
_serialPort.WriteTimeout = 500
_serialPort.Open()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
_serialPort.WriteLine(Me.TextBox1.Text)
End Sub Sub EventReceiveData(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)
Dim strT As String
strT = _serialPort.ReadExisting() '接收
MessageBox.Show(strT)
_serialPort.DiscardOutBuffer() End Sub
Imports System.IO.Ports
Public Class Form1 Shared _serialPort As SerialPort Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
_serialPort = New SerialPort()
AddHandler _serialPort.DataReceived, AddressOf EventReceiveData
If _serialPort.IsOpen = True Then
_serialPort.Close()
End If
_serialPort.PortName = "COM1"
_serialPort.BaudRate = 9600
_serialPort.Parity = Parity.None
_serialPort.DataBits = 8
_serialPort.StopBits = StopBits.One
_serialPort.Handshake = Handshake.None
_serialPort.ReadTimeout = 500
_serialPort.WriteTimeout = 500
_serialPort.Open()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
_serialPort.WriteLine(Me.TextBox1.Text)
End Sub Sub EventReceiveData(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs)
Dim strT As String
strT = _serialPort.ReadExisting() '接收
MessageBox.Show(strT)
_serialPort.DiscardOutBuffer() End Sub
另外这里是C#区