利用VS2005.net serialport类,写数据心得

 

在一个类里声明一个串口类
    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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值