在一个类里声明一个串口类
Private serialPort As System.IO.Ports.SerialPort
'//串口初始化程式
Public Sub InitialCOM()
Try
方式1, 不用校检位,写入数据位不稳定,常用丢失.不得不在Write后用sleep函数,这样虽然保证了写入的数据位不丢失,但浪费了时间.
serialPort = New System.IO.Ports.SerialPort(g_hards.COMn, g_hards.Baudrate, IO.Ports.Parity.None, 8, IO.Ports.StopBits.One)
方式2, 用校检位,写入数据位很稳定.如果写入的数据很少的话,几乎可以Write后不用sleep函数,在保证数据不丢失的情况下,又保证用最少的时间.
serialPort = New System.IO.Ports.SerialPort(g_hards.COMn, g_hards.Baudrate, IO.Ports.Parity.Even/Odd/Mark, 8, IO.Ports.StopBits.One)
serialPort.WriteBufferSize = 4096
serialPort.WriteTimeout = 50
serialport.Handshake = XonXoff
'//防止另一进程在使用该串口,然后打开该串口
serialPort.Close()
serialPort.Open()
Catch ex As Exception
MessageBox.Show("Initial COM PORT failed!")
End Try
End Sub
Sub Write(byval code as byte)
'//串口写操作
方式1, 一次只能写入一个字节的数据
serialPort.BaseStream.WriteByte(code)
方式2, 一次只能写入n个字节的数据,如果要写入大量的数据,强力推荐使用这种方法
serialPort.BaseStream.WriteByte(code(), 0ffset, lenght)
Call System.Threading.Thread.Sleep(delayms)
End Sub