我正在尝试用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/
我的comboBox代码设置我的端口:
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();
}
}
答案 0 :(得分:0)
进入TeraTerm的COM端口属性,并确保在代码中使用相同的属性。
尝试使用这个类(它包含了很多串行内容以使其更容易):