簡體   English   中英

通過 C# 從 Arduino 讀取串行數據

[英]Reading serial data from Arduino via C#

我正在嘗試制作一個程序,允許我控制 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 度”。

您需要調用serialComms.Open()

通常當我使用事件處理程序通過串行端口接收消息時,我會做這樣的事情......

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

我希望這在某種程度上有所幫助!

這是我的解決方案:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM