串口+ C#数据接收问题

时间:2012-06-16 19:57:38

标签: c# serial-port arduino

我想将Arduino中出现的数据传输到我的C#应用​​程序,并且不知道我的代码中有什么问题。 这里有Arduino代码:

int switchPin = 7;
int ledPin = 13;
boolean lastButton = LOW;
boolean currentButton = LOW;
boolean flashLight = LOW;

void setup()
{
  pinMode(switchPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

boolean debounce(boolean last)
{
  boolean current = digitalRead(switchPin);
  if (last != current)
  {
    delay(5);
    current = digitalRead(switchPin);
  }
  return current;
}

void loop()
{
  currentButton = debounce(lastButton);
  if (lastButton == LOW && currentButton == HIGH)
  {
    Serial.print("UP");

    digitalWrite(ledPin, HIGH);
  }
  if (lastButton == HIGH && currentButton == LOW)
  {
    Serial.print("DOWN");

    digitalWrite(ledPin, LOW);
  }

  lastButton = currentButton;
}

如您所见,这个简单的草图在按下按钮时向端口发送消息。 我创建了一个控制台C#app来接收数据:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Text;
using System.IO.Ports;

namespace ArduinoTestApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            SerialPort port = new SerialPort("COM3", 9600);
            port.Open();
            string lane;
            while (true)
            {
                lane = port.ReadLine();

                Console.WriteLine(lane);
            }

        }
    }
}

但是当我按下按钮控制台仍然是空的。 请告诉我有什么问题!

1 个答案:

答案 0 :(得分:2)

一切都很简单。我忘了写

  

Serial.begin()

:D就是这样。现在它有效。