gpt4 book ai didi

c# - 如何从串口读取设备数据

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:27 25 4
gpt4 key购买 nike

我有一台设备在 COM 端口上发送数据,比如在 COM13 上。现在我想读取该数据并将其显示在 RichTextBox 或任何文本控件中。

我在 IO 和 IO.Ports 的帮助下编写了应用程序,但 comport.DataRecived 事件没有触发,即使设备正在该端口上发送数据也是如此。

我有一些软件,我在上面定义了端口号,它成功地显示了数据,这确保我正在端口上接收数据,但我无法接收。

有什么方法可以读取数据吗?

comm.Parity = cboParity.Text;//None
comm.StopBits = cboStop.Text;//One
comm.DataBits = cboData.Text;//8
comm.BaudRate = cboBaud.Text;//9600
comm.DisplayWindow = rtbDisplay;//Null
comm.PortName = "COM13";
comm.OpenPort();

cmdOpen.Enabled = false;
cmdClose.Enabled = true;
cmdSend.Enabled = true;

public bool OpenPort()
{
if (comPort.IsOpen)
{
comPort.Close();
}

comPort.DataReceived += new SerialDataReceivedEventHandler(comPort_DataReceived);
comPort.PortName = _portName;
comPort.Open();return true;
}

最佳答案

这通常是由于串口配置错误造成的。仅仅打开一个串口并等待一些数据进来是不够的。你还必须设置allSerialPort.Properties。为您想要的连接设置正确的值。

一些常见的是 BaudRateDataBitsParity,但要真正确保您必须设置所有这些。甚至像 RtsEnableReadTimeout 这样的东西。

您必须全部设置,因为配置状态将从端口本身保存。因此,如果一个应用程序打开这样一个端口,对配置进行一些更改并关闭它,那么打开该端口的下一个应用程序将从该配置开始,直到它更改它。

更新

似乎是我从这里看不到的问题。 ;-))

我能给你的唯一建议是使用 Monitor tool ,以便更好地了解您的其他应用程序的真正作用以及在线上发生的情况。此外,您可以设置 two virtual com ports在一台机器上测试读取和写入(甚至在同一应用程序中),以便更好地控制何时发送哪些数据。

关于c# - 如何从串口读取设备数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com