所以,我正在创建一个监听串口的VB.NET程序。我正在使用这个
Dim WithEvents ptr_SerialPort As System.IO.Ports.SerialPort
...
ptr_SerialPort = My.Computer.Ports.OpenSerialPort(serialportname, baudrate,parity, databits, stopbits)
工作正常,直到我意识到我超出了我的SerialPort.ReadBufferSize属性,即4096,并且丢失了数据:
https://msdn.microsoft.com/en-us/library/system.io.ports.serialport.readbuffersize(v=vs.110).aspx
所以我试着按如下方式增加缓冲区的大小
ptr_SerialPort = My.Computer.Ports.OpenSerialPort(serialportname, baudrate, parity, databits, stopbits)
ptr_SerialPort.ReadBufferSize = 2000000
但是我收到错误"在打开"时无法设置缓冲区大小。这是合理的,所以我尝试了这个:
ptr_SerialPort = New System.IO.Ports.SerialPort(serialportname, baudrate, parity, databits, stopbits)
ptr_SerialPort.ReadBufferSize = 2000000
ptr_SerialPort.Open()
好吧,这导致串口不接收数据......我猜My.Computer.Ports.OpenSerialPort不仅仅是实例化它,而我上面提到的是一个不是的串口对象连接到我的硬件。所以,我的问题是......如何在我的电脑上打开串口,和指定ReadBufferSize属性?
非常感谢!
答案 0 :(得分:1)
嗯,奇怪的是
ptr_SerialPort = New System.IO.Ports.SerialPort(serialportname, baudrate, parity, databits, stopbits)
ptr_SerialPort.ReadBufferSize = 2000000
ptr_SerialPort.Open()
现在正在运作......所以这是完成它的方法。它一定是一些间歇性的问题,另一方面欺骗了我。谢谢你的回答,抱歉花时间。