Cпасибо, после пересборки Sming все заработало.Не совсем, в Sming полностью свой сетевой стек, никак не завязанный с Ардуино библиотеками (на базе LWIP).
pvvx тут совершенно прав, чтобы сказать что-либо о причинах проблем нужен wireshark лог.
Попробуйте первым делом пересобрать проект SmingFramework.
Но обращения к TCP-стеку строят через интерфейс Arduino. А он "не заточен" под сетевые протоколы. Будите долго биться, пока не напишете раздельные драйвера по классам. HTTP - это уже не TCP-стек, а протокол уровнем над ним и имеет отличия для клиента и сервера. Класса драйвера - сервер-HTTP или клиент-HTTP я в Sming не наблюдаю...Не совсем, в Sming полностью свой сетевой стек, никак не завязанный с Ардуино библиотеками (на базе LWIP).
Там поддержка не выше HTTP 0.9. А такого стандарта даже нет.pvvx, дык как не наблюдаете классов под http сервер и клиент.. они ж есть.. https://github.com/anakod/Sming/tree/master/Sming/SmingCore/Network
#include <Wire.h>
void setup()
{
Wire.begin(0x55);
Wire.onRequest(requestEvent);
}
void loop()
{
}
// function that executes whenever data is received from master
void requestEvent()
{
Wire.write(100);
}
#include <user_config.h>
#include <SmingCore/SmingCore.h>
Timer loopTimer;
void loop()
{
WDT.alive();
Serial.print(millis() / 1000);
Serial.print(": ");
Wire.beginTransmission(0x55);
Wire.requestFrom(0x55, 1);
while(Wire.available()) {
Serial.print("READ ");
Serial.print((int)Wire.read());
Serial.println("");
}
Wire.endTransmission(true);
Serial.println("");
}
void init()
{
Serial.begin(SERIAL_BAUD_RATE);
Serial.systemDebugOutput(true);
Wire.pins(2, 4); // ваши пины
Wire.begin();
WifiAccessPoint.enable(false);
WifiStation.enable(false);
Wire.beginTransmission(0x55);
if (Wire.endTransmission() == 0) {
Serial.println("EXISTS!");
} else {
Serial.println("NOT EXISTS :(");
}
loopTimer.initializeMs(500, loop).start();
}
Почему-же? Он четко показывает, что I2C на первом скрине на скорости до 100кГц, а на последующих - более 600кГц.Логический анализатор мне тоже особо не помог...
Спасибо, до этого пробовал только ускорить I2C в Arduino - не помогло. Увеличил (пробовал разные и смотрел, что выходит) задержку в I2cMaster.h - появилась надежда, но... не особно помогло, стало принимать мусор, который и софт анализатора понять не может.PS: Увеличьте задержку low CLK в I2C драйвере.
c:/Espressif/ESP8266_SDK/lib\libmain.a(app_main.o): In function`user_uart_wait_tx_fifo_empty':
(.irom0.text+0x340): undefined reference to `user_rf_pre_init'
extern "C" void __attribute__((weak)) user_rf_pre_init(void)
В https://github.com/anakod/Sming этих [HASHTAG]#define[/HASHTAG] нет. Они были в старых SDK (менее 1.1.0, в esp_iot_sdk/include/eagle_soc.h ) и всё-равно не работают. Вы пытаетесь страслировать что-то очень старое...Всё переустановил ничего не изменилось, не может найти PIN_PULLDWN_DIS и PIN_PULLDWN_EN
Попробуйте вместо 1 задержки на 1000мс:Поставил свежий Sming стал перезагружаться модуль при таком коде:
...
В предыдущем все работало ок. delay делал меньше не помогает. В чем может быть дело? Спасибо.
WDT.alive();
delay(500);
WDT.alive();
delay(500);