MicroPython: Daten mit UART empfangen

UART ist eine Standard-Schnittstelle, die eine Vielzahl von Geräten haben, um Daten mit anderen Geräten austauschen zu können.
Um Daten von einer UART-Schnittstelle zu empfangen gibt es die Methoden read() und readline().

  • Mit read() kann man einzelne oder alle Zeichen lesen.
  • Mit readline() erfolgt das Lesen zeilenweise.

Programmcode: Zeichenweise Lesen der UART-Schnittstelle

Der folgende Programmcode liest die UART-Schnittstelle ein. Die Zeichenkette wird ausgegeben, wenn Daten an der Schnittstelle gelesen werden konnten.

Hinweis: Bei der Initialisierung der UART-Schnittstelle muss der Wert "9600" an die Geschwindigkeit der Gegenstelle angepasst werden.

# Bibliotheken laden
from machine import UART
import utime as time

# Initialisierung: UART
# UART 0, TX=GPIO0 (Pin 1), RX=GPIO1 (Pin 2)
# UART 1, TX=GPIO4 (Pin 6), RX=GPIO5 (Pin 7)
uart = UART(0, 9600)
#print(uart)

print('Warten auf Daten der Gegenstelle')

while 1:
    time.sleep(2)
    char = uart.read()
    if char is not None:
        try: print(char.decode())
        except: print(char)

Problem: Die Zeichenkette ist unvollständig

Es kann vorkommen, dass die ausgegebene Zeichenkette unvollständig ist. Dazu muss man wissen, dass der Eingangspuffer einer UART-Schnittstelle begrenzt ist. Bei MicroPython wird eine UART-Schnittstelle standardmäßig mit einer Länge von 256 Zeichen initialisiert. Schickt die Gegenstelle mehr Zeichen, bevor die Schnittstelle gelesen wird, sind die Zeichen danach einfach weg. Das bedeutet, die empfangene Zeichenkette wird hinten abgeschnitten.

In MicroPython kann man die Größe des Empfangspuffers bei der Initialisierung festlegen dazu gibt es den Parameter „rxbuf“. Die angegebene Ganzzahl entspricht der Anzahl der Zeichen, die im Empfangspuffers am Stück hineinpassen.
Bei der folgenden UART-Initialisierung wird eine Puffergrößer von 1000 Zeichen eingestellt. Es kann sein, dass das bei einem konkreten Anwendungsfall immer noch zu wenig ist. Der Puffer kann auch noch weiter vergrößert werden.

uart = UART(0, 9600, rxbuf=1000)

Weitere verwandte Themen:

Teilen:

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Hardware-nahes Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)

Zum PicoTalk

 

Elektronik-Set Pico Edition
Elektronik-Set Pico Edition

Raspberry Pi Pico: Hardware-nahes Programmieren mit MicroPython

Leichter Einstieg mit All-in-one-Set zum sofort Loslegen, um eigene Steuerungen programmieren.

Elektronik-Set jetzt bestellen

 

Elektronik-Set Pico WLAN Edition
Elektronik-Set Pico WLAN Edition

Raspberry Pi Pico W: IoT und Smart Home mit WLAN und MQTT

Betreibe Deinen Raspberry Pi Pico W als drahtloser Sensor in Deinem WLAN, versende E-Mails mit Daten und kommuniziere per MQTT im Internet of Things oder Smart Home.

Elektronik-Set jetzt bestellen

 

Elektronik-Set Sensor Edition
Elektronik-Set Sensor Edition

Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition

Elektronik-Set mit den beliebtesten Sensoren zum Messen von Temperatur, Helligkeit, Bewegung, Lautstärke und Entfernung.

Elektronik-Set jetzt bestellen

 

Elektronik-Set Eingabe Ausgabe Edition
Elektronik-Set Eingabe Ausgabe Edition

Erweiterung zu den Elektronik-Sets Pico Edition und Pico WLAN Edition

Damit kannst Du MP3-Dateien abspielen, eine Stoppuhr bauen, einen Servo-Motor mit Drehschalter oder Joystick steuern, Lichteffekte mit einem WS2812-LED-Lichtstreifen erzeugen, Schalten mit einem Relais und Signalisieren mit einem Vibrationsmotor.

Elektronik-Set jetzt bestellen