Anonymous
Ctrl + shift + s
Anonymous
Компиляция без загрузки
Anonymous
Если компилируется то проблема в загрузке
Viter
Ну да, не грузится
Indr1x
Плата точно wroower? Размер памяти такой же?
Viter
Та перепробовал уже всякие
Ну да, не грузится
возможно загрузчик того
boot
Н Е К И Б Е Р Л Е О
было с esp82
Н Е К И Б Е Р Л Е О
выпаивал и шил программатором)
Viter
На порт отвечает
Viter
Н Е К И Б Е Р Л Е О
аа
Н Е К И Б Е Р Л Е О
мож моде поменять?
Н Е К И Б Е Р Л Е О
sio dio?
Н Е К И Б Е Р Л Е О
Viter
Не
LICHKING
Не
Кнопки зажимаешь?
Viter
Да нет?
Viter
Плата luanode32
LICHKING
для того чтобы залить данные нужно зажать кратковременно 2 кнопки
LICHKING
LICHKING
Лично у меня так
Viter
В какой момент
LICHKING
в момент когда скетч скомпилирован
LICHKING
перед загрузкой
LICHKING
LICHKING
в этот момент
Viter
Две помогло
Viter
Капец
LICHKING
ураааа
Viter
Нигде не пишут, на 8266 проблем небыло таких
LICHKING
я уже не помню где вычитал
Viter
Благодарочка. Умничка.
Юрий
В этой версии, есть какой-то бок, и автоматом не переходит в режим программирования, для исправления косяка нужно конденсатор припаять.
Yuriy
для того чтобы залить данные нужно зажать кратковременно 2 кнопки
Дополню - их не зажать кратковременно нужно. а одну нажать и держать, а другую кратковременно нажать (ресет) и после этого отпустить первую. Смысл вроде тот же - а вот из-за попыток именно "одновременно" нажать - часто выходит не совсем то
romanetz
?
Andy
на самом же деле все просто - зажать boot. не опуская boot кратковременно нажать EN. отпустить boot. в момент когда EN стартует чип происходит чтение ног загрузки ( страппинг ноги) если boot зажат в этот момент включается загрузчик room и ждет команд прошивки. все. https://github.com/espressif/esptool
Vladyslav
Учитывая то, что мне достаточно просто зажать boot на секунду-две, загрузчик сам ресетает при попытке прошить
Юрий
Boot обычно тоже управляется из прошивальщика, и как правило ничего нажимать не нужно, но не всегда.
Yuriy
Алексей
у меня как раз такой
Anonymous
Обычно чтобы перевести в режим прошивки подсоединяются gpio0 на землю и делаю ресет
Anonymous
Можно посмотреть монитлре порта, что прошивка не запустилась , а чип находится в режиме программирования
Anonymous
Вообще то тоже самое написали выше, но я часто делаю это обычными проводками , Дюпон Ами или пинцетом 😁
Anonymous
*Дюпонтами
LICHKING
Не заработало по SPI.
LICHKING
Заработало с первого раза по SPI.
LICHKING
Юрий
Видел в мастер ветке esp-idf пример даже для enc28j60.
Nikita7131
Nikita7131
Хтось стикався з цією пробоемою ?
Алексей
И как?
мне многого ненадо. брал для отображения ip адреса на дисплее. робит.
romanetz
411й ))
У меня cyclonetcp тоже примеры с первого раза работали, на 207 и 407 с нативной сеткой
Алексей
ну мне чисто для работы надо было, я и в програмировпнии не силен. на esphome с божьей помощью поднялось все 😂. но уже заказал книжку c++
romanetz
А на 407ю Дискавери пример - кубик на вебморде крутится по положению самой платы, с акселя данные тянутся
romanetz
Там бесплатных куча
Алексей
ок, спасибо
Viter
Там бесплатных куча
А уточните где
Alexey D.
Дядьки подскажите... bool fn(const uint8_t* buf, uint16_t len) { const uint32_t calculated_checksum = calculate_checksum(buf, len); return // Сравнить calculated_checksum и последние 4 байта buf } Как это написать не используя memcpy и доп переменные. т.е. как сказать calculated_checksum == (значение типа uint32_t по адресу &buf[len-5] ) * Подразумевается что про endianness я где-то уже позаботился Пытаюсь понять, правильно ли сравнивать так: calculated_checksum == *( (uint32_t *)(&buf[DMAFT_BUFFER_SIZE - 5]) ) Вроде как &buf[DMAFT_BUFFER_SIZE - 5] дает нам uint8_t* указатель на 4й с конца байт (тип буфера uint8_t так что именно байт) (uint32_t *) тупо преобразует тип указателя а *() дает значение по этому указатель Я прав?
Василий
вот закрутил..
Василий
сохрани результаты в две переменные и сравнивай
Alexey D.
сохрани результаты в две переменные и сравнивай
Хорошо, вопрос меняю: как без memcpy срхранить uint32_t X = (значение типа uint32_t по адресу &buf[len-5] )
Василий
а где тут вообще про memcpy
Василий
приведи типы в одинаковые - и все
Василий
если от этого плясать uint32_t X = (значение типа uint32_t по адресу &buf[len-5] ) то так и напиши uint32_t X = (uint32_t)&buf[len-5]
Василий
в переменную возмется 4 байта с адреса &buf[len-5]
Василий
Амперсанд (&) это разадресация т.е. ты получишь данные что начинаются с этого адреса
Alexey D.
Амперсанд (&) это разадресация т.е. ты получишь данные что начинаются с этого адреса
Ээээ... нет же. Это наоборот адресация &My_Array[0] = (address) of-the (first-byte) of (element-at-index-0) https://www.cplusplus.com/doc/tutorial/pointers/
Василий
это разадресация переменной, т.е. получение адреса переменной - а дальше берешь ли ты данные или присваишь ей значение - уже второй шаг
Василий
понял? / нет ?
Alexey D.
Нет...