C# + ESP8266 (WemosD1Mini) Serielle Verbindung nicht möglich
-
Ich möchte eine serielle Verbindung über USB zu einem ESP8266 (WemosD1Mini) aufbauen. Wenn ich den Seriellen monitor von der Arduino IDE öffne, funktioniert alles super. Wieso klappt es nicht mit meinem Code? Bitte sagt mir was hier falsch ist ich weiß nicht weiter.
Arduino Code (zum Testen):
####################
void setup() {
Serial.begin(9600);
}void loop() {
Serial.print('1');
delay(200);
}
####################und hier der C# Code:
using System; using System.IO.Ports; using System.Threading; namespace SerialReadTest { class SerialRead { static void Main(string[] args) { Console.WriteLine("Serial read init"); SerialPort port = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One); port.Open(); while (true) { Console.WriteLine(port.ReadLine()); } } } }
-
@whatever Kommt denn das "Serial read init"?
-
@whatever
Öffne mal den COM Port mittels TeraTerm oder YAT und schau mal ob die Daten vom Ardurio ankommen.Im schlimmsten Fall nutzt du ein älteres USB Prolific Kabel welches sei Win10 geblockt wird.
-
@Quiche-Lorraine sagte in C# + ESP8266 (WemosD1Mini) Serielle Verbindung nicht möglich:
Im schlimmsten Fall nutzt du ein älteres USB Prolific Kabel welches sei Win10 geblockt wird.
Meist hat der Arduino diesen USB/Com Chip schon integriert.
Eine 9-pol D-Sub Steckbverbindung kommt da gar nicht mehr vor.
-
@whatever sagte in C# + ESP8266 (WemosD1Mini) Serielle Verbindung nicht möglich:
void loop() { Serial.print('1'); delay(200); }
...
while (true) { Console.WriteLine(port.ReadLine()); }
Wenn du mitReadLine
liest, dann wäre es schlau auch Zeilenumbrüche zu schicken.Bzw. wenn du byteweise lesen willst, dann solltest du
ReadByte
verwenden.while (true) { int b = port.ReadByte(); if (b >= 0) Console.Write((char)b); }