В интернете вы можете найти 1001 статью про разработку программ для микроконтроллеров ESP8266EX. Большинство из них рассчитаны на Arduino разработчиков. По некоторым причинам, кого-то (и меня в том числе) не устраивает разработка в среде Arduino ввиду отсутствия необходимой гибкости. И только очень небольшой процент гайдов рассчитан на разработку с помощью официального SDK от Exressif в IDE Eclipse. В данной статье речь пойдет о программировании ESP8266 под управлением операционной системы Windows, с помощью кросскомпилятора GCC и RTOS SDK, которые изначально были созданы для Linux разработчиков. В качестве IDE мы будем использовать Visual Studio 2019+ и VisualGDB 6+.

Сегодня существует огромное множество нелинейных сопротивлений, предназначенных для измерения температуры. Самыми популярными из них являются NTC термисторы на 10 кОм. В статье я описываю способ измерения температуры любого NTC термистора с любым номинальным сопротивлением при помощи одного АЦП микроконтроллера. Предоставляю готовый код функции на Си.

В этой статье я предоставляю 100% рабочие схему и исходные коды для STM32F4x7 для работы в связке STM32 + KSZ8863RLLI + HAL + LwIP.

Микросхема KSZ8863 от Microchip - двухпортовый PHY контроллер Ethernet'а. Умеет работать как standalone сетевой коммутатор 10/100 Мб. Современный, быстрый, надежный чип. Меня особенно привлекло то, что в нем есть функция MDI-X, это когда контроллер автоматически распознает, какой патч-корд к нему подключили, прямой или кроссовер. Он автоматически переворачивает пары TX/RX под любой кабель. Это особенно удобно, когда вы подключаете несколько устройств между собой обычными прямыми патч-кордами.

Скачать готовый код можно по ссылке https://cloud.as.life/s/mtCccJ5HXP4iLCL

Я к этому уроку написал простую библиотеку, которая позволит работать как с одним, так и с несколькими датчиками температуры на шине 1-Wire. И поскольку ссылку на код я привел выше, вы можете скачать, открыть, смотреть. А лучше всего подключите эту библиотеку к своему проекту, разведка боем будет. Я же детально опишу что там к чему.

Обмен данными ведется по интерфейсу 1-Wire, а это полностью синхронный интерфейс. Сейчас объясню, что это значит. Все датчики температуры DS18B20 – это ведомые устройства, а наш микроконтроллер — ведущее устройство. Чтобы записать или прочитать бит, ведущее устройство подает импульс каждый раз, на каждый бит. Допустим, например, читаем мы 8 бит из датчика, микроконтроллер даёт импульсы на чтение 4 битов, отвлекаемся на время, потом дочитываем оставшиеся 4 бита. Без внешнего тактирования не происходит ничего, датчики молчат до тех пор пока их никто не спросит. Таким образом, ведущее устройство — дирижер в этом оркестре. 
Далее я буду называть ведущее устройство (микроконтроллер) мастером, а ведомое устройство (датчик(-и)) слэйвом.