首页 文章

通过C#从Arduino读取串行数据

提问于
浏览
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度” .

3 回答

  • 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();
    }
    
  • 1

    你需要拨打 serialComms.Open()

  • 2

    通常当我使用事件处理程序通过串口接收消息时,我会做这样的事情......

    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";
    }
    

    我希望这在某种程度上有所帮助!

相关问题