我的RS232串口分割输入我发送它

本文关键字:输入 RS232 串口 分割 我的 | 更新日期: 2023-09-27 17:49:55

我有一个USB到RS232适配器,我用它从条形码阅读器获得长输入(28个字符)。我的电脑一切正常。

我将c#应用程序安装在其他计算机上,该计算机具有RS232串口连接到其PCI-E,当我从条形码读取器接收输入时,它将其分成两部分!

我怎么知道的?因为我在c#应用程序上有一个DataReceived的事件处理程序,它被调用了2次,每次我都得到了输入的一部分。

RS232 PCI-E端口由Oxford Semiconductor Inc.生产。

操作系统是Windows 7。

我假设这是一个硬件问题,而不是我的应用程序的问题。可能需要更改一些设置,缓冲区大小或类似的东西,但我找不到这样的东西。

提前感谢!

我的RS232串口分割输入我发送它

不,这是你的应用程序。你不应该期望所有的数据立即可用;你在第一台机器上很幸运。你需要调用Read(),直到你得到你所期望的一切。

uart、驱动程序等的差异可能导致窗口多次引发该事件,具体取决于时间和其他因素。

下面的内容:

char buf[28];
int offset = 0;
int nread;
while (offset < buf.Length) {
    nread = comPort.Read(buf, offset, buf.Length - offset);
    offset += nread;
}