相关疑难解决方法(0)

连接打开时更改SerialPort的BaudRate

我正在使用SerialPort类与外部设备进行通信.我以每秒300波特的速度开始通信,但是在初始"握手"之后,我必须切换到设备指定的波特率(通常为9600 Bps).

在增加波特率之后,我一直试图继续通信,但是我不知道为什么.这引出了我的问题:改变波特率的正确方法是什么?可以在连接打开时完成,还是应该先关闭连接?

我无法在文档中找到有关此内容的任何信息......

我已经尝试了两种方式并且在两种方式都没有成功,这让我觉得我必须遗漏一些明显的东西.

c# serial-port serial-communication

7
推荐指数
2
解决办法
7245
查看次数

C#异步串口读取

我有一个类,它使用C#中的DataReceived事件处理程序从串口读取.当我收到数据时,我知道标题将有5个字节,所以我不想对数据做任何事情,直到我至少有.我目前的代码如下:

while (serialPort.BytesToRead<5)
{
//Do nothing while we have less bytes than the header size
}

//Once at least 5 bytes are received, process header
Run Code Online (Sandbox Code Playgroud)

据我了解,这段代码是阻塞的,需要改进.我正在寻找有关如何做到这一点的建议.DataReceived事件处理程序中的另一个事件处理程序是否合适?

asynchronous serial-port blocking

7
推荐指数
2
解决办法
2万
查看次数