【发布时间】:2011-05-30 16:03:22
【问题描述】:
我有一个 C# 应用程序,我正在编写它以尝试从串行设备自动提取数据。正如我的问题的标题所说,我在 Putty 中尝试了完全相同的命令,然后我得到了数据。有人可以告诉我我错过了什么,以便我可以使用我的 C# 应用程序获取相同的数据吗?
基本上,我需要COM6,速度/波特率为57600,并发送不带引号“UH”的命令。我应该看到几行文本数据,这似乎只适用于 Putty。
作为一个快速测试,我把它放在一起:
private void SerialPort serialPort = new SerialPort();
private void getHistory_Click(object sender, EventArgs e)
{
serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
serialPort.PortName = "COM6";
serialPort.BaudRate = 57600;
serialPort.Open();
if (serialPort.IsOpen())
{
serialPort.Write("UH");
}
}
private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
string result = serialPort.ReadExisting();
Invoke(new MethodInvoker(delegate{ textbox1.AppendText(result); }));
}
DataReceived 事件确实被触发,但它只返回我发送的“UH”,没有进一步的数据。对此问题的任何帮助将不胜感激!
- 贾斯汀
【问题讨论】:
标签: c#-3.0 serial-port