Forum: Mikrocontroller und Digitale Elektronik ESP8266 Micropython Grundlagen


von chris (Gast)


Angehängte Dateien:

Lesenswert?

Im Moment versuche ich gerade, Micropython auf einer NodeMCU zu 
benutzen.

Als will ich die serielle Schnittstelle nutzen.
1
from machine import UART
2
uart = UART(1,9600)
3
uart.init(9600)
4
uart.write("hello\n")

Der TXD1 Pin ist laut Bild GPIO2, aber es gibt leider keinen RX-PIN.
Was kann man tun?

von Stefan F. (Gast)


Lesenswert?

Der erste serielle Port ist mit der USB Buchse (durch den USB-UART Chip) 
verbunden.

von chris (Gast)


Lesenswert?

Danke, hab's gerade gesehen:
https://raw.githubusercontent.com/nodemcu/nodemcu-devkit/master/Documents/NODEMCU_DEVKIT_SCH.png
Es sieht so aus, als wenn Schutzwiderstände zwischen dem 
USB-Seriel-Wandler und dem ESP sind. Man könnte die Signale 
"überbügeln".
Blöd ist dann nur, dass man mit dem Terminal oder Web-Repl nicht mehr an 
das MicroPython drann kommt. Sehr ärgerlich ...
Gibt es eine Software-Uart für Micropython?

von Guido L. (guidol1970)


Lesenswert?

chris schrieb:
> Der TXD1 Pin ist laut Bild GPIO2, aber es gibt leider keinen RX-PIN.
> Was kann man tun?

Der TXD1/GPIO02 ist meist auch an der LED die blinkt beim flashen der 
NodeMCU.

Wie waer es dann TXD2/RXD2 auf GPIO13/15 zu nehmen?
Oder geht dies nicht?
(habe meine NodeMCU und WEMOS D1 ESP8266 auch erst mit Micropython 
geflasht)

von chris (Gast)


Lesenswert?

>Wie waer es dann TXD2/RXD2 auf GPIO13/15 zu nehmen?
>Oder geht dies nicht?

Wenn ich mich recht erinnere, ging es aus irgend welchen Gründen damals 
im Januar nicht. Man müsste es mal ausprobieren, ob es immer noch so 
ist.

Hier gibt es eine sehr gut Schnellrefernz für das ESP8266 Micropython:

https://github.com/micropython/micropython/blob/master/docs/esp8266/quickref.rst

Mit den dort aufgeführten Timer-Funktionen kann man eine Art 
Minimultitasking System basteln. Die Auflösung von 1ms reicht aber 
leider nicht für eine Softrware-Uart.

von chris (Gast)


Lesenswert?

Hab's gerade noch mal probiert:
1
=== from machine import UART
2
=== uart = UART(2,9600)
3
=== uart.init(9600)
4
=== uart.write("hello\n")
5
Traceback (most recent call last):
6
  File "<stdin>", line 2, in <module>                                           
7
ValueError: UART(2) does not exist

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.