读/写串口(UBW)

时间:2012-05-03 00:35:01

标签: c# serial-port communication

我正在尝试用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();
        }

    }

1 个答案:

答案 0 :(得分:0)

进入TeraTerm的COM端口属性,并确保在代码中使用相同的属性。

尝试使用这个类(它包含了很多串行内容以使其更容易):

http://code.google.com/p/flux3gui/source/browse/Flux3GUI/SerialCommunication.cs?r=b4a4f8546b936eeabe60b7de32e3027493498dc6