при получении "левого" пакета тз ниоткуда, даже при выключенном сетевом кабеле! зависает после последней строки. Как такое может быть? Что там взрывается? Код (C++): if (!NoEnternet) { #include "Ethernet_W5500.h" #include "EthernetUdp.h" void setup() { Serial.begin(115200); Serial3.begin(115200); Ethernet.begin(mac, myip); Serial.println("получение IP "); //Ethernet.begin(mac); udp.begin(354); } void loop() { //Serial.println("Проверяю наличие пакета "); // считываем размер принятого пакета if (udp.parsePacket()) { int size = udp.parsePacket(); // есть пакет Udp, выводим информацию о пакете Serial.print("Получил пакет от "); IPAddress ipFrom = udp.remoteIP(); Serial.println(ipFrom); Serial.print("Size "); Serial.print(size); Serial.print(", port "); Serial.println(udp.remotePort()); } }
стандартный код, из примера. пока ничего нет udp.parsePacket() = 0 - крутится и крутится, а как что залетит, то все. И еще одна особенность - залетает не один. Сколько - не знаю, т.к. на втором виснет. И залетает без шнура - т.е. какие то шумы или наводки.
А что это такое вначале? Так нельзя. Код (C++): if (!NoEnternet) { #include "Ethernet_W5500.h" #include "EthernetUdp.h"