我正在使用SerialPort类与外部设备进行通信.我以每秒300波特的速度开始通信,但是在初始"握手"之后,我必须切换到设备指定的波特率(通常为9600 Bps).
在增加波特率之后,我一直试图继续通信,但是我不知道为什么.这引出了我的问题:改变波特率的正确方法是什么?可以在连接打开时完成,还是应该先关闭连接?
我无法在文档中找到有关此内容的任何信息......
我已经尝试了两种方式并且在两种方式都没有成功,这让我觉得我必须遗漏一些明显的东西.
我有一个类,它使用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事件处理程序中的另一个事件处理程序是否合适?