Kommunikation mellan PC - Arduino UNO
Postat: 24 december 2019, 12:02:02
Försöker upprätta en pålitlig kommunikation mellan en PC och Arduino UNO.
I PC:n finns ett program (skrivet i Autohotkey)
Programmet har två fönster - Ett fönster där text kan skrivas in och i det andra fönstret visas resultatet från Arduinon.
Kommunikationen till/från Arduino UNO sker i nuläget via USB.
Programmet i Arduino UNO skall i nuläget endast returnera de tecken som PC:n sänder.
Detta ser ut på följande sätt .:
Om kommunikationen mellan PC och Arduino är satt till 9600bps verkar kommunikationen fungera utan problem.
Om överföringshastigheten sätts till 19200 eller högre (115200) uppstår ett "mystiskt" problem.
1) Programmet på Arduinon startas.
2) AHK-programmet på PC:n startas.
Det första som händer är att en rubrik - - - - - - TERMINAL OUTPUT - - - - - - skickas till Arduinon
Om 19200bps används, returneras följande .: ý- - - - - - TERMINAL OUTPUT - - - - - -
Om 115200bps används, returneras följande .: ðð- - - - - - TERMINAL OUTPUT - - - - - -
Sedan fungerar kommunikationen som förväntat, men var kommer "slasktecknen" från?
Hur kan dessa "filtreras bort"? (har försökt analysera med Arduinos "Serie monitor".
Men upplever att dessa tecken inte visas där - (den analysen är dock inte fullkomlig)
Hur ska kommunikationen mellan PC / Arduinon se ut?
Vilken typ av struktur skall tecken som skickas från mitt program på PC:n ha?
(Hextal som 0x45 eller 45,46,47 eller 454647 eller ABCD eller ANSI eller....)
I PC:n finns ett program (skrivet i Autohotkey)
Programmet har två fönster - Ett fönster där text kan skrivas in och i det andra fönstret visas resultatet från Arduinon.
Kommunikationen till/från Arduino UNO sker i nuläget via USB.
Programmet i Arduino UNO skall i nuläget endast returnera de tecken som PC:n sänder.
Detta ser ut på följande sätt .:
Kod: Markera allt
void setup() {
Serial.begin(115200);
}
void loop(){
while (Serial.available() > 0) {
Serial.write(Serial.read());
}
}
Om överföringshastigheten sätts till 19200 eller högre (115200) uppstår ett "mystiskt" problem.
1) Programmet på Arduinon startas.
2) AHK-programmet på PC:n startas.
Det första som händer är att en rubrik - - - - - - TERMINAL OUTPUT - - - - - - skickas till Arduinon
Om 19200bps används, returneras följande .: ý- - - - - - TERMINAL OUTPUT - - - - - -
Om 115200bps används, returneras följande .: ðð- - - - - - TERMINAL OUTPUT - - - - - -
Sedan fungerar kommunikationen som förväntat, men var kommer "slasktecknen" från?
Hur kan dessa "filtreras bort"? (har försökt analysera med Arduinos "Serie monitor".
Men upplever att dessa tecken inte visas där - (den analysen är dock inte fullkomlig)
Hur ska kommunikationen mellan PC / Arduinon se ut?
Vilken typ av struktur skall tecken som skickas från mitt program på PC:n ha?
(Hextal som 0x45 eller 45,46,47 eller 454647 eller ABCD eller ANSI eller....)