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
перед загрузкой
Vladyslav
LICHKING
LICHKING
в этот момент
Viter
Две помогло
Viter
Капец
LICHKING
ураааа
Viter
Нигде не пишут, на 8266 проблем небыло таких
LICHKING
я уже не помню где вычитал
Viter
Благодарочка. Умничка.
Н Е К И Б Е Р Л Е О
Юрий
В этой версии, есть какой-то бок, и автоматом не переходит в режим программирования, для исправления косяка нужно конденсатор припаять.
romanetz
?
Andy
на самом же деле все просто - зажать boot. не опуская boot кратковременно нажать EN. отпустить boot. в момент когда EN стартует чип происходит чтение ног загрузки ( страппинг ноги) если boot зажат в этот момент включается загрузчик room и ждет команд прошивки. все.
https://github.com/espressif/esptool
Vladyslav
Учитывая то, что мне достаточно просто зажать boot на секунду-две, загрузчик сам ресетает при попытке прошить
Юрий
Boot обычно тоже управляется из прошивальщика, и как правило ничего нажимать не нужно, но не всегда.
Yuriy
Алексей
Anonymous
Обычно чтобы перевести в режим прошивки подсоединяются gpio0 на землю и делаю ресет
Anonymous
Можно посмотреть монитлре порта, что прошивка не запустилась , а чип находится в режиме программирования
Anonymous
Вообще то тоже самое написали выше, но я часто делаю это обычными проводками , Дюпон Ами или пинцетом 😁
Anonymous
*Дюпонтами
LICHKING
LICHKING
LICHKING
Заработало с первого раза по SPI.
LICHKING
Юрий
Видел в мастер ветке esp-idf пример даже для enc28j60.
Nikita7131
Nikita7131
Хтось стикався з цією пробоемою ?
Алексей
И как?
мне многого ненадо. брал для отображения ip адреса на дисплее. робит.
romanetz
romanetz
411й ))
У меня cyclonetcp тоже примеры с первого раза работали, на 207 и 407 с нативной сеткой
romanetz
Алексей
ну мне чисто для работы надо было, я и в програмировпнии не силен. на esphome с божьей помощью поднялось все 😂. но уже заказал книжку c++
romanetz
А на 407ю Дискавери пример - кубик на вебморде крутится по положению самой платы, с акселя данные тянутся
romanetz
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 *)
тупо преобразует тип указателя
а *() дает значение по этому указатель
Я прав?
Василий
вот закрутил..
Василий
сохрани результаты в две переменные и сравнивай
Василий
а где тут вообще про memcpy
Василий
приведи типы в одинаковые - и все
Василий
если от этого плясать
uint32_t X = (значение типа uint32_t по адресу &buf[len-5] )
то так и напиши
uint32_t X = (uint32_t)&buf[len-5]
Василий
в переменную возмется 4 байта с адреса &buf[len-5]
Alexey D.
Василий
Амперсанд (&) это разадресация
т.е. ты получишь данные что начинаются с этого адреса
Василий
это разадресация переменной, т.е. получение адреса переменной - а дальше берешь ли ты данные или присваишь ей значение - уже второй шаг
Василий
понял? / нет ?
Alexey D.
Нет...