ESP32 MicroPython-Fehler beheben: 'ValueError: pin can only be input'
English
Deutsch
Problem:
Sie versuchen, einen ESP32-Pin in MicroPython zu initialisieren mit
micropython_pin_example.py
import machine
machine.Pin(34, machine.Pin.OUT)aber Sie sehen eine Fehlermeldung wie
micropython_pin_error_output.txt
>>> machine.Pin(34, machine.Pin.OUT)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: pin can only be inputLösung
Auf dem ESP32 sind Pins mit Nummern >= 34 nur-Eingabe-Pins!
Sie müssen andere Pins < 34 verwenden, wenn Sie Ausgabefähigkeit benötigen!
Als Referenz siehe den entsprechenden MicroPython-Quellcode-Abschnitt:
micropython_machine_pin.c
// Modus konfigurieren
if (args[ARG_mode].u_obj != mp_const_none) {
mp_int_t pin_io_mode = mp_obj_get_int(args[ARG_mode].u_obj);
if (self->id >= 34 && (pin_io_mode & GPIO_MODE_DEF_OUTPUT)) {
mp_raise_ValueError("pin can only be input");
} else {
gpio_set_direction(self->id, pin_io_mode);
}
}Check out similar posts by category:
Embedded, MicroPython, Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow