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» В выделенных красной линией файлах (открываются с […]

4. Аттенюаторы, мосты, согласование

Часто возникает необходимость согласовать источник сигнала и нагрузку Согласовать — значит «подобрать» сопротивления: Какие существуют виды согласования: По напряжению — в этом случае сопротивление нагрузки выбирается максимально возможным, а коэффициент передачи по напряжению стремится к единице. По току- в этом случае сопротивление нагрузки выбирается минимально возможным, а коэффициент передачи по току стремится к единице. По мощности […]

3. Потери и усиление

Потери и усиление в СВЧ трактах, расчеты в дБ, При работе с сигналами имеющими сильную взаимосвязь со средой распространения и как следствием с потерями удобно пользоваться децибелами. Децибелы позволяют перевести основные параметры в «формат» логарифма, за счет чего операции умножения и деления превращаются в сложение и вычитание, что несравненно удобнее. По сути мы избавляемся от […]