2

Arduinoを制御してHIGH信号を送信してモーターを回転させるプログラムを作成しようとしています。シリアルを介してモーターが動いたことを知らせるフィードバックがあります。

私の問題は、Arduino からフィードバックが得られないことです。これらは私のコードスニペットです。

SerialPort serialComms;
Select_Arduino.IsEnabled = false;
serialComms = new SerialPort(Port_Name.SelectedItem.ToString(), Convert.ToInt32(Baud_Rate.SelectedItem.ToString()));
serialComms.DtrEnable = true;
serialComms.DataReceived += serialComms_DataReceived;

void serialComms_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    SamsungTV.Text = SamsungTV.Text + "\n" + e.ToString();
}

プログラムは一切入りませんserialComms_DataReceived。フィードバックを受け取る方法はありますか?

フィードバックは、「モーターが反時計回りに 15 度移動しました」と同じです。

4

3 に答える 3

2

電話する必要がありますserialComms.Open()

于 2012-11-19T14:53:30.880 に答える
1

通常、シリアル ポート経由でメッセージを受信するためにイベント ハンドラーを使用する場合、次のようなことを行います...

void serialComms_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
     String testing = serialComs.ReadLine(); // Also, I use the Serial.println(arg) command from the arduino in order to simplify the syntax a little bit..
     SamsungTV.Text = testing + "\n";
}

これが何らかの形で役立つことを願っています!

于 2013-01-03T22:36:49.667 に答える
0

これが私の解決策です:

using System.IO.Ports;

private void Read()
{
   SerialPort myport = new SerialPort();

   myport = new SerialPort();
   myport.BaudRate = 9600;
   myport.PortName = "COM3";

   myport.Open();
   string data = myport.ReadLine();

   myport.Close();
}
于 2017-04-19T05:07:59.873 に答える