stm32

Работа с энкодером в stm32

Не так давно решил пощупать работу с энкодером.
Для этих целей приобрел себе такой модуль.

В общем это самый обычный инкрементный энкодер KY-040.
Принцип работы сего чуда прост. Имеем два выхода. А и В или же CLK и DT.
При повороте энкодера на них появляются прямоугольные импульсы.
Сдвиг говорит нам о направлении вращения.

Работаем с дисплеем ILI9341 по DMA

Я уже писал о работе с дисплеем ILI9341.
Частота обновления экрана при этом оставляла желать лучшего. Даже после игр с частотой SPI ничего приемлемого добиться не удалось. На этой почве бросил это дело на пол пути. А недавно увидел вот такое:

Работаем с цветным TFT дисплеем ILI9341

Наконец добрались руки до дисплея. Купил его еще летом, а вот нормально заняться им вышло только сейчас.
Дисплеев на сегодняшний день огромное количество, мой выбор пал на решение "лоу кост". Такой дисплей у китайских друзей стоит в 5-6$.

Подсчет CRC прошивки средствами IAR и проверка на stm32f4 discovery

Любое уважающее себя устройство должно следить за целостностью своей прошивки и сигнализировать если что-то не так.
Для проверки целостности данных удобно пользоваться циклическим избыточным кодом или CRC. Эта штука позволяет рассчитать число уникальное для набора данных. Таким образом имея данные и это число можно проверить верны ли данные или что-то пошло не так и у нас вместо нужных чисел полная билиберда.

Организация задержки в stm32

Согласитесь, очень удобно пользоваться функциями delay_ms() при работе с контроллерами AVR. Жаль, что таких функций нет для stm32.
Задержка в avr организована в виде двух циклов написанных на ассемблере. Расчет величины задержки выполняется при помощи директив учитывающих частоту процессора на этапе компиляции. В stm32 такой подход не является таким действенным из-за больших частот.

Что такое Bit Banding на примере stm32

Прежде чем объяснить, что такое Bit-Banding, позвольте мне написать немного о том, как работает ЦПУ. Обычно ядро процессора не может читать/писать отдельные биты регистров или ячеек памяти. Вместо этого ЦПУ должен записывать/считывать целые байты или даже слова одновременно. Если процессор должен изменить значение всего одного бита, и может только считать/записать байт, он должен сначала прочитать текущее значение во временный регистр, изменять это значение при помощи логической операции, а затем записать конечный результат. Эти три этапа метко названы чтение-модификация-запись.

Работа с SD картой памяти по SDIO STM32 F4 Discovery

Как Вы уже наверное знаете, SDIO - это интерфейс для передачи данных в/из карт памяти.
В этой статье речь пойдет о работе с microSD флеш картой памяти по SDIO, который имеется в контроллере stm32f407vgt6 платы stm32f4 discovery.

Вывод printf в UART STM32 в IAR

Я писал статью об USART в STM32, сейчас же речь пойдет о том, как сделать так, что бы при вызове самой обычной printf данные отправлялись в UART.
Это нужно скорее для удобства. Допустим вам нужно организовать вывод дробных чисел. Без использования printf Вам понадобиться написать функцию для преобразования данных в строку. В принципе это не сложно и можно использовать sfprintf, но можно просто перенаправить вывод printf в нужную периферию (в нашем случае UART).

USART в stm32

Когда речь заходит об интерфейсах передачи данных, USART (в народе S часто упускают) - самая нужная штуковина. Благодаря ему разработчики имеют возможность организовать передачу данных по интерфейсам RS-232, RS-485 и даже 1-Wire.

USART (Universal Synchronous/Asynchronous Receiver/Transmitter) - универсальный синхронный/асинхронный (вот тут и зарыт секрет буквы S) приемопередатчик.