1

コマンドを受け取って入力を返すように、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();
        }

    }
4

1 に答える 1

0

TeraTerm の COM ポート プロパティに移動し、コードで同じプロパティを使用していることを確認します。

このクラスを使用してみてください (簡単にするために多くのシリアルをまとめています):

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

于 2012-05-03T04:29:33.623 に答える