NodeMCU Exception 28 - прерывистая проблема
Я ИНОГДА получаю исключение 28
при запуске веб-загрузки (по очень нестабильному каналу CPE в сельской местности — Wi-Fi работает нормально, но подача данных то включается, то отключается):
Decoding stack results
0x40213b8c: dns_gethostbyname at core/dns.c line 1472
0x40204d95: ESP8266WiFiGenericClass::hostByName(char const*, IPAddress&, unsigned int) at /home/tony/.arduino15/packages/esp8266/hardware/esp8266/2.4.2/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp line 468
0x40208d7c: HardwareSerial::write(unsigned char const*, unsigned int) at /home/tony/.arduino15/packages/esp8266/hardware/esp8266/2.4.2/cores/esp8266/HardwareSerial.h line 159
0x4020519c: WiFiClient::connect(char const*, unsigned short) at /home/tony/.arduino15/packages/esp8266/hardware/esp8266/2.4.2/libraries/ESP8266WiFi/src/WiFiClient.cpp line 98
0x40208fe0: Print::println(char const*) at /home/tony/.arduino15/packages/esp8266/hardware/esp8266/2.4.2/cores/esp8266/Print.cpp line 190
0x402040c4: uploadAgrigis(char const*) at /home/tony/Arduino/sketches/tempo1_vs12b_Master_NodeMCU_Rain_Wind/tempo1_vs12b_Master_NodeMCU_Rain_Wind.ino line 360
0x40208f41: Print::write(char const*) at /home/tony/.arduino15/packages/esp8266/hardware/esp8266/2.4.2/cores/esp8266/Print.h line 60
0x40208f6c: Print::println() at /home/tony/.arduino15/packages/esp8266/hardware/esp8266/2.4.2/cores/esp8266/Print.cpp line 178
0x40204a2b: loop() at /home/tony/Arduino/sketches/tempo1_vs12b_Master_NodeMCU_Rain_Wind/tempo1_vs12b_Master_NodeMCU_Rain_Wind.ino line 258
0x402074f0: TwoWire::endTransmission() at /home/tony/.arduino15/packages/esp8266/hardware/esp8266/2.4.2/libraries/Wire/Wire.cpp line 151
0x40203a04: BH1750_Init(int) at /home/tony/Arduino/sketches/tempo1_vs12b_Master_NodeMCU_Rain_Wind/tempo1_vs12b_Master_NodeMCU_Rain_Wind.ino line 1121
0x40209d3c: loop_wrapper() at /home/tony/.arduino15/packages/esp8266/hardware/esp8266/2.4.2/cores/esp8266/core_esp8266_main.cpp line 125
Мой код в строке 360
if (client.connect(serverName,80)) {
Моя текущая стратегия заключается в том, чтобы постоянно поддерживать соединение Wi-Fi. Должен ли я проверить подключение перед попыткой подключения к серверу?
@tony gil, 👍0
1 ответ
Исключение 28, согласно документу со списком исключений:
Доступ к неверному адресу
Наиболее распространенная причина — попытка чтения или записи из/в указатель NULL.
Это может быть связано с тем, что у вас включена отладка, и эта отладка пытается напечатать что-то, что не было возвращено должным образом из другого вызова функции (вызов не удался). имя хоста (hostByName()
) из-за непостоянного подключения к Интернету.
Это может показаться нелогичным, но попробуйте отключить отладку, чтобы увидеть, поможет ли это уменьшить количество сбоев.
- NodeMCU - Vin контакт как выход 5V?
- Как заставить 5-вольтовое реле работать с NodeMCU
- ESP8266 не подключается к Wi-Fi
- Разве в узле MCU v3 (LoLin) нет встроенного светодиода?
- Разница между этими двумя платами NodeMCU?
- NodeMCU - использовать кнопку flash в качестве входного сигнала в loop()
- Как определить размер Flash?
- Использование датчика рН 5В с узлом 3,3В
контринтуитивно имеет смысл. дайте мне пару дней на бенчмаркинг, и я вернусь. ПРОГОЛОСОВАНО, ожидается ПРИНЯТИЕ., @tony gil
не решил проблему. попытка изменить уровень
lwIP
на1.4
согласно https://github.com/esp8266/Arduino/issues/4078, @tony gilтоже не помогло... в тупике, @tony gil
@tonygil Вы должны сократить свою программу до абсолютного минимума и добавлять разные части, пока она не начнет давать сбой., @Majenko
спасибо Сделаю. будут работать отдельные риги с разным уровнем сложности., @tony gil