3
我想將出現在Arduino中的數據傳輸到我的C#應用程序,並且不知道我的代碼中有什麼問題。 這裏談到的Arduino代碼:串口+ C#數據接收問題
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#應用程序接收數據:
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);
}
}
}
}
但是,當我按下按鈕控制檯仍然是空的。 請告訴我什麼是錯的!
with port.ReadLine()我認爲你需要發送一個CR或LF或兩者都可以? – kenny
@kenny:你的意思是「CR還是LF」?你能寫一些更多的信息嗎? :) – omtcyfz
你缺少port.Close()?它看起來像你的代碼不釋放潛在的未託管代碼的資源。 –