BARS__
New member
Всем привет.
Есть модуль ESP8266, работает в качестве сетевой карты для STM32. Прошивка в нем совсем простецкая, точка доступа и сервер для настройки самого модуля и тупой пересыл UDP пакетов по UART. Собственно именно в этом тупом пересыле и возникла проблема. Если послать несколько пакетов подряд (в среднем 10-11), то модуль явно перестает их принимать. При этом сам модуль явно не зависает, т.к. переключение в режим точки доступа и обратно работает нормально. При этом после этого самого переключения работа восстанавливается, но не на долго. При этом модуль перестает пинговаться. Кроме этого, даже во время нормальной работы модуль не виден в списке подключенных устройств в настройках роутера. Коннект к сети выполняется вот так:
В чем может быть проблема? Может и не модуль вовсе виноват, а роутер?
Есть модуль ESP8266, работает в качестве сетевой карты для STM32. Прошивка в нем совсем простецкая, точка доступа и сервер для настройки самого модуля и тупой пересыл UDP пакетов по UART. Собственно именно в этом тупом пересыле и возникла проблема. Если послать несколько пакетов подряд (в среднем 10-11), то модуль явно перестает их принимать. При этом сам модуль явно не зависает, т.к. переключение в режим точки доступа и обратно работает нормально. При этом после этого самого переключения работа восстанавливается, но не на долго. При этом модуль перестает пинговаться. Кроме этого, даже во время нормальной работы модуль не виден в списке подключенных устройств в настройках роутера. Коннект к сети выполняется вот так:
Код:
/**
* Соединение с WiFi
*/
bool ConnectWiFi(const char *ssid, const char *pass, String IP) {
// Три попытки соединения по WiFi
uint8_t i = 0, j = 0, ip[4];
i = IP.indexOf('.');
ip[0] = IP.substring(0, i).toInt();
j = IP.indexOf('.', i+1);
ip[1] = IP.substring(i+1, j).toInt();
i = IP.indexOf('.', j+1);
ip[2] = IP.substring(j+1, i).toInt();
j = IP.length();
ip[3] = IP.substring(i+1, j).toInt();
IPAddress ip_addr(ip[0], ip[1], ip[2], ip[3]);
IPAddress ip_gate(ip[0], ip[1], ip[2], 1);
IPAddress ip_subnet(255, 255, 255, 0);
WiFi.mode(WIFI_STA);
WiFi.config(ip_addr, ip_gate, ip_subnet);
for(int i = 0; i < 3; i++) {
WiFi.begin(ssid, pass);
for(int j = 0; j < 10; j++){
if(WiFi.status() == WL_CONNECTED){
return true;
}
delay(1000);
}
}
return false;
}
В чем может быть проблема? Может и не модуль вовсе виноват, а роутер?
Последнее редактирование: