Wie man ESP32 lwIP behebt: assert failed: tcpip_inpkt (Invalid mbox)
Problem
Ihr Mikrocontroller stürzt mit einer Assertions-Fehler wie
lwip_assert_failed.txt
assert failed: tcpip_inpkt /IDF/components/lwip/lwip/src/api/tcpip.c:252 (Invalid mbox)Lösung
Dieser Fehler tritt auf, weil der TCP/IP-Stack vor der Verwendung nicht initialisiert wurde.
Beachten Sie, dass esp_netif_init() intern tcpip_init() aufruft, sodass Sie tcpip_init() nicht aufrufen müssen, wenn Sie esp_netif_init() verwenden:
esp32_tcpip_init.cpp
#include <lwip/tcpip.h>
#include <esp_netif.h>
void setup() {
// Rufen Sie dies früh in Ihrer setup-Funktion auf!
esp_netif_init();
}Falls Sie den ESP-High-Level-Stack nicht verwenden, stellen Sie sicher, dass Sie tcpip_init(nullptr, nullptr) aufrufen, bevor Sie lwIP-Funktionen verwenden.
esp32_tcpip_init_only.cpp
#include <lwip/tcpip.h>
void setup() {
// Rufen Sie dies früh in Ihrer setup-Funktion auf!
tcpip_init(nullptr, nullptr);
}If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow