我正在尝试在 C# 中对 UBW 进行编程以接收命令并将输入返回给我。例如,当我在 TeraTerm 中建立 USB 连接时,输入 v 将为我提供我正在使用的 UBW 的当前固件版本的输出。
我在 C# 中建立了连接。我想我发送的命令是正确的,但我的 datareceived 处理程序从未在调试器中调用。
这是尝试写入端口的代码:
private void button1_Click(object sender, EventArgs e)
{
if (port.IsOpen)
{
//write command to port
port.WriteLine(textBox1.Text);
}
else
{
MessageBox.Show("Serial port is closed! Try again!");
}
textBox1.Clear();
}
这是尝试从中读取的代码(从未从调试器中调用)
private void port_dataReceived(object sender, SerialDataReceivedEventArgs e)
{
try
{
port.ReadLine();
}
catch { }
}
这是 UBW 主页,展示了它是如何工作的。http://schmalzhaus.com/UBW/
我的组合框代码来设置我的端口:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string portName = comboBox1.SelectedItem.ToString();
port = new SerialPort(portName, 9600, Parity.None, 8, StopBits.One);
port.DataReceived += new SerialDataReceivedEventHandler(port_dataReceived);
try
{
port.Open();
//port.DataReceived += new SerialDataReceivedEventHandler(port_dataReceived);
}
catch
{
MessageBox.Show("The selected serial port cannot be opened!");
Application.Exit();
}
}