2

我正在尝试制作一个程序,允许我控制 Arduino 发出一个高信号来转动我的电机,并且将通过串行反馈告诉我电机已被移动。

我的问题是我无法从 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 回答