ich bin Python-Neuling und kämpfe mit der Übertragung von Daten über die serielle Schnittstelle.
Die Daten stammen von einem Arduino, der nichts anders macht als sich zu "melden".
Code: Alles auswählen
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("Hier bin ich.");
delay(1000);
}
Wenn ich die serielle Schnittstelle mit der am Arduino eingestellten Übertragungsrate 115200 öffne, erhalte ich "Müll".
Wenn ich sie mit einer falschen Übertragungsrate (9200) öffne, wieder schließe und dann mit 115200 öffne, erhalte ich die gewünschten Daten.
Auf der Konsole sieht das so aus:
Code: Alles auswählen
Python 2.7.8 (default, Sep 30 2014, 15:34:38) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> ser=serial.Serial('/dev/ttyUSB0',115200)
>>> print(ser.read(15))
�a
�▒�▒▒�p�1�:�
>>> ser.close()
>>> ser=serial.Serial('/dev/ttyUSB0',115200)
>>> print(ser.read(15))
�▒��p��8p�p���
>>> ser.close()
>>> ser=serial.Serial('/dev/ttyUSB0',9200)
>>> ser.close()
>>> ser=serial.Serial('/dev/ttyUSB0',115200)
>>> print(ser.read(15))
Hier bin ich.
>>> print(ser.read(15))
Hier bin ich.
>>> print(ser.read(15))
Hier bin ich.
>>> ser.close()
Auch jetzt muss ich erst mit 9200 öffnen, um dann erfolgreich mit 115200 lesen zu können.
Code: Alles auswählen
>>> ser=serial.Serial('/dev/ttyUSB0',115200)
>>> print(ser.read(15))
p�p�p�1�:1�>:�▒
>>> ser.close()
>>> ser=serial.Serial('/dev/ttyUSB0',115200)
>>> print(ser.read(15))
p�>:�a��a▒��p��
>>> ser.close()
>>> ser=serial.Serial('/dev/ttyUSB0',9200)
>>> ser.close()
>>> ser=serial.Serial('/dev/ttyUSB0',115200)
>>> print(ser.read(15))
Hier bin ich.
>>> ser.close()
>>>
Code: Alles auswählen
nitram@linux-DrDet:~/Downloads/ArduinoPlot-master> python -m serial.tools.miniterm -p /dev/ttyUSB0 -b 115200
--- Miniterm on /dev/ttyUSB0: 115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Hier bin ich.
Hier bin ich.
Hier bin ich.
--- exit ---
nitram@linux-DrDet:~/Downloads/ArduinoPlot-master> python -m serial.tools.miniterm -p /dev/ttyUSB0 -b 115200
--- Miniterm on /dev/ttyUSB0: 115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
p�p�>:
--- exit ---
nitram@linux-DrDet:~/Downloads/ArduinoPlot-master> python -m serial.tools.miniterm -p /dev/ttyUSB0 -b 115200
--- Miniterm on /dev/ttyUSB0: 115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
�▒▒
--- exit --
nitram@linux-DrDet:~/Downloads/ArduinoPlot-master> python -m serial.tools.miniterm -p /dev/ttyUSB0 -b 9200
--- Miniterm on /dev/ttyUSB0: 9200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
�]�
--- exit ---
nitram@linux-DrDet:~/Downloads/ArduinoPlot-master> python -m serial.tools.miniterm -p /dev/ttyUSB0 -b 115200
--- Miniterm on /dev/ttyUSB0: 115200,8,N,1 ---
--- Quit: Ctrl+] | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Hier bin ich.
Hier bin ich.
Hier bin ich.
Hier bin ich.
Hier bin ich.
--- exit ---
nitram@linux-DrDet:~/Downloads/ArduinoPlot-master> ^C
Gruß
Nitram