07. Работа с UART (Receive)
Первоначальная настройка аналогична настройкам для Uart_Tx. В самом верху файла после #include необходимо прописать заглушки (они необходимы для работы с прерываниями): void ets_isr_mask(unsigned intr); void ets_isr_unmask(unsigned intr); Создадим переменные для работы: uint8_t Uart_Rx_buf[5]={0}; //Буфер на прием uint8_t Rx_Cnt=0; //счетчик принятых байт uint8_t Rx_len=5; //длинна буфера uint8_t Flag=0; //Флаг что приняли данные Напишем callback функцию […]
Пишем библиотеки
Пусть мы написали свою «библиотеку» lib.c lib.h (расположены в src и inc) Для сборки помимо подключения #include «lib.h» необходимо в Makefile прописать: Создаем цель (после src/main.o:…): src/lib.o: src/lib.c inc/user_config.h @echo «CC src/lib.o» @$(CC) —Iinc —I$(SDK_INC) —I$(SDK_INC)/json —I$(SDK_DRIVER_INC) $(CC_FLAGS) src/lib.c —o src/lib.o В сборке цели app_app.a дописать: build/app_app.a: src/main.o src/lib.o #сборка цели @echo «>> AR build/app_app.a» @$(AR) cru […]
08. Работа с I2C
Для работы с I2C (подробнее о шине можно посмотреть в stm32) используются пины 9 и 14 (GPIO14 и GPIO2) На GPIO2 обычно установлен светодиод. Максимальная скорость I2C 100кГц Небольшая напоминалка: В I2C используется 7 бит адреса и 8 бит чтения/записи Проверяется 9 бит ACK/NACK позволяющий определить наличие (физическое или «доступность» программы у микросхемы) ACK — […]
05. Прерывания GPIO
Опишем алгоритм настройки и обработки прерываний GPIO на примере 4 пина. В самом верху файла после #include необходимо прописать заглушки (они необходимы для работы с прерываниями): void ets_isr_mask(unsigned intr); void ets_isr_unmask(unsigned intr); После заглушек напишем callback функцию (функцию обработчика прерываний) static void GPIO_EXTI_handler() //функция обработчика прерываний { uint32_t gpio_st=GPIO_REG_READ(GPIO_STATUS_ADDRESS); //получаем данные из регистра состояний ETS_GPIO_INTR_DISABLE(); […]
06. Работа с UART (Transmit)
Для работы с UART (подробно про шину написано в stm32) в меню: Проект->Properties->C/C++ General->Paths and Symbols->GNU C Примечание — если там пусто, то можно посмотреть по пути: Проект->Properties->C/C++ General->Preprocessor Include Path->GNU C->CDT Managed… надо добавить путь до ESP8266_NONOS_SDK\driver_lib\include (пример на рисунке ниже), сохраняем изменения. Далее в нашем проекте например в файле main.c включаем файл прописывая #include […]
03. Создаем проект копированием старого
Чтобы быстро создать новый проект (и не прописывать настройки и часть инициализации) — разумно создавать его на основе старого проекта (например FirstProject). Для этого создаем пустую папку с названием нового проекта (например Prj2), в нее копируем все содержимое папки FirstProject (4 папки и 3 файла) Очищаем содержимое папки «build» В выделенных красной линией файлах (открываются с […]
04. ESP8266 — GPIO and delay
ESP8266 работа с GPIO Для работы с периферией ESP8266 Espressif предоставляет SDK в котором сделана «обертка» для регистров в виде defines а также задефайнены некоторые функции, в последующем когда говорится «функция» имеется в виду дефайн/задефайненная функция. ВАЖНО! По умолчанию в esp8266 включен WDT таймер, необходимо или сбрасывать его или остановить (не рекомендуется) system_soft_wdt_feed(void); system_soft_wdt_stop(void); Примечание: желательно […]
02. Начало работы, настраиваем Eclipse
Начало работы, настраиваем Eclipse Установка и настройка среды: Скачиваем с сайта https://www.eclipse.org/ Eclipse и устанавливаем версию для c/c++ developers Копируем папку «esp8266» из архива (весит около 260мБ) в директорию по умолчанию, у меня это корень диска «C» Устанавливаем Python 2,7 из архива, при установке ВЫБРАТЬ ПУНКТ ПРОПИСАТЬ В PATH (или прописать вручную C:\Python27;C:\Python27\Scripts), проверяем что он […]
01. Введение в ESP8266
Введение в ESP8266 Предисловие: В своих начинаниях с ESP8266 я опирался на материал от Владимира Воробьева (NarodStream.ru) и его видеоролики. В них содержится большой объем информации, но какие-то моменты я переделал. Настоятельно рекомендую посмотреть его видеоуроки! // //———————————————————————— // Начинаем цикл статей по работе с микроконтроллерами ESP8266. Программировать будем в среде Eclipse. в своих тестах я […]