-
Библиотека для LCD на базе контроллера HD44780
Писал я как-то статейку про подключение этих дисплеев к Arduino. Но сейчас моё кремниевое сердце принадлежит STM32, а с имеющимися дисплеями работать хочется. Как-то раз мне понадобилось визуально отладить алгоритм для этих МК — я собрался духом и сел писать библиотеку. Писать с нуля, постоянно копошась в даташите, мне не хотелось, поэтому я решил портировать…
-
STM32: Урок 6.2 — Таймеры общего назначения и продвинутые
Продолжаем тему таймеров в STM32. В прошлый раз мы рассмотрели базовые таймеры, которые довольно-таки просты. Но сегодня мы поиграемся с более крутой игрушкой — таймерами общего назначения, которые на голову выше предыдущих. Умеют они всё то же, что и базовые таймеры, но у них есть дополнительные возможности: До 4-х каналов для: Захвата сигнала (input capture).…
-
STM32: Урок 6.1 — Базовые таймеры
Всё-таки, меня всегда умиляло название «таймер» для этих сложных штук в микроконтроллерах. Шутка ли: кроме срабатывания в строго заданный интервал, они имеют ещё до десятка дополнительных функций типа генерации ШИМ и подсчёта входящих импульсов. В микроконтроллерах STM32 таймеры настолько круты, что я посчитал нужным разбить их описание на несколько статей. Таймеров в STM32 много, и…
-
STM32: Урок 5 — Архитектура
Думаю, пришло время окинуть взглядом архитектуру ARM Cortex-M3 в целом и конкретно STM32, потому что это важно для понимания многих особенностей работы этих микроконтроллеров в будущем — например, тактирование и принцип работы DMA. Прежде, чем приниматься за более сложные темы, мы изучим внутренности МК и их взаимодействие друг с другом. Аппаратная модель Cortex-M3 Взглянем на…
-
STM32: Урок 4 — GPIO
GPIO (General Purpose Input-Output) — это выводы общего назначения, ноги микроконтроллера, доступные для прямого управления. Это обычно довольно дефицитный ресурс во многих популярных МК, но с STM32 эта проблема теряет актуальность: в самом мелком корпусе (LQFP48) доступно 37 GPIO, а в самом большом (LQFP176) — 140 GPIO. И всё это богатство ещё и настраивается вдоль…
-
STM32: Урок 3 — Документация
При работе с микроконтроллерами STM32, и не только с ними, часто нужно заглядывать в документацию, чтобы найти какие-либо сведения (captain mode on). Для продуктивной работы с ней нужно хорошо представлять себе, где её найти, а также где в ней найти нужную информацию. Вот об этом я вам и расскажу. Посмотрим, что покажет нам компания ST…
-
STM32: Урок 2 — Quickstart
В прошлой статье мы настроили IDE, и теперь просто обязаны испытать STM32 в деле. Этот урок будет служить этаким трамплином для программерского прыжка в STM32: помигаем светодиодами, поиграемся с таймером — легко и непринуждённо, без копошения в несущественных сейчас деталях. Цель урока — дать общее представление о том, как программируются эти МК. На всякий случай,…
-
Теперь клешня и по Bluetooth
Думаю, многие помнят одно из недавних наших творений — клешню из ПКЛ (поликапролактона), и кто-то, возможно, даже читал о Bluetooth-модулях HC-05. Так вот, мы решили сделать клешню управляемой по Bluetooth с Arduino.
-
STM32: Урок 1 — Настраиваем IDE
Сегодня я расскажу, как подготовить рабочую среду для разработки под ARM Cortex-M3 микроконтроллеры STM32F10x. Среда должна в себя включать компилятор, редактор кода, отладчик, прошивалку микроконтроллера, а также должна быть удобна для использования. Ну и должна дружить с платами STM32VLDiscovery и STM32L-Discovery, само собой.Выбор IDE для ARM довольно большой, и можно их условно разделить на две…
-
Знакомство с ARM Cortex-M3 и с STM32, в частности
Пожалуй, большинство эмбеддерщиков и просто интересующихся встроенными системами уже слышали про процессоры ARM. Их устанавливают в промышленное оборудование, в смартфоны и аудио-плееры, в видеотехнику, да много ещё куда. Популярность ARM во многом обеспечена их хорошей производительностью при низком энергопотреблении, что делает их идеальными для применения в различных мобильных устройствах.ARM расшифровывается как Advanced RISC Machines. RISC…
Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…