STM32 ONE PULSE MODE.
25-10-2018, 14:22
В одном из проектов использовал следующий механизм для управления бузером, включал его вручную, запускал таймер и выключал в прерывании, которое возникало при переполнении таймера. Со временем количество прерываний в проекте выросло и часто другие прерывания не давали сработать прерыванию, в котором выключался бузер. В результате чего, бузер всегда издавал разный по длительности звуковой сигнал....
STM32 I2S.
30-08-2018, 12:33
Протокол I2S, не путать с I2C, предназначен для передачи аудио потока. В моем устройстве этот протокол используется для передачи аудио потока между кодеком и МК. Сразу хотелось бы отметить, что как такового отдельного модуля I2S у STM32 нет, а тот что есть реализуется на основе модуля SPI и тот же регистр DR[0:15] у них общий....
STM32 I2C.
27-06-2018, 11:11
В последнее время все чаще натыкаюсь на негативные отзывы о шине I2C у STM32, мол работа с ней это танцы с бубном и тд. За последний месяц мне удалось запустить две микросхемы, работающие по I2C и ни каких танцев, только вдумчивое чтение даташита....
STM32 FLASH.
5-05-2018, 19:10
Думаю постоянные посетители сайта заметили, что предпочитаю все делать на регистрах, но иногда все таки использую SPL. Например, в статье про самописный бутлоадер, использовались библиотечные функции для работы с флэш памятью. В очередной раз, подключая эту библиотеку, решил, что она занимает много места и решил самостоятельно реализовать необходимые функции. Для работы с флэш памятью...
STM32 RTC, Calendar.
19-04-2018, 13:25
Начнем с того, что RTC — это аббревиатура которая расшифровывается следующим образом Real-time clock или по-русски, часы реального времени. В былые времена, при использовании МК AVR в качестве RTC, использовал отдельную микросхему, общение с которой происходило по определенному протоколу. У STM32 RTC же представляет собой модуль, реализованный внутри МК. У STM32 RTC обладает следующими...
STM32 проблемы при подключении дисплея по LTDC.
26-03-2018, 14:41
В одной из прошлых статей описывал, как подключить дисплей к микроконтроллеру семейства STM32, используя интерфейс LTDC. Статья оканчивалась видеороликом, в котором на встроенный в DISCOVERY дисплей, выводилось изображение. Конечно же следующим желанием было запустить, что-то побольше и подключить это самостоятельно, чтобы в голове сложилась полная картина. С Китая был заказан 7-дюймовый дисплей...
STM32 DMA MEM2MEM.
21-11-2017, 15:28
В одной из прошлых статей уже описывал, что такое DMA и приводил пример его работы в связке с АЦП. В том примере, результаты преобразования АЦП записывались в буфер без участия ядра. В этот раз мне надо было перенести буфер из одного участка памяти в другой и я точно знал, что это можно сделать с помощью DMA используя режим MEM2MEM....
STM32 измерение частоты.
13-10-2017, 10:31
В одной из прошлых статей рассказывал про режим захвата у STM32 и приводил пример как с его помощью измерить период сигнала. Но таким способом не получится ТОЧНО измерить период высокочастотного сигнала.(дальше станет понятно какой сигнал считать высокочастотным) Предположим, что частота исследуемого сигнала 1MНz, а наш таймер отсчитывает 72млн в секунду. Переведем значения частоты в период....
STM32 быстрое преобразование Фурье.
14-12-2016, 13:42
Давно хотелось прикрутить к осциллографу, который описывал тут, преобразование Фурье, но почему-то руки не доходили. Совсем недавно, месяц назад решил увеличить частоту сэмплирования ослика, заменив stm32F103VE с частотой сэмплирования 1М на stm32F303VC c частотой сэмплирования 5М. После замены чипа и изменения программы решил всё-таки разобраться с быстрым преобразованием Фурье(БФП или FFT). ...
STM32 BSRR VS ODR.
20-10-2016, 19:43
Те кто читает эту статью, думаю знают, что записать единицу в нулевой бит порта А можно двумя способами GPIOA->ODR |= GPIO_ODR_ODR0; или GPIOA->BSRR = GPIO_BSRR_BS0; И везде пишут, что второй способ правильнее так, как установка бита в таком случае выполянется атомарно. Тут не поспоришь. А теперь давайте представим ситуацию, у нас есть восьмибитная шина, по которой передаются данные,...
Измерение температуры с помощью термопары, на примере MAX6675 для STM32.
21-09-2016, 16:41
В последнее время появилась необходимость в печке для пайки оплавлением. Для тех кто не знает, что это такое, в двух словах опишу, как она работает и для чего она нужна. Есть у меня десяток плат, которые надо собрать, элементы на плате в основном smd. Сейчас платы собираются по следующему алгоритму: сначала с помощью шприца наношу на контактные площадки паяльную пасту, затем раскладываю элементы....
STM32 тактирование.
17-09-2016, 15:15
Первое время для того, чтобы упростить написание программ для STM32 не вдавался в тонкости настройки системы тактирования, а выбирал частоту системной шины в файле system_stm32f10x.c, просто расскоментировав нужную строку. Но если уж доходило дело до настройки частоты тактирования отдельных блоков(например АЦП), то использовал CUBE. Перед глазами вся система тактирования, что очень удобно и...
Подключение резистивной сенсорной панели c драйвером XPT2046 к STM32 и её калибровка по четырём точкам.
11-08-2016, 13:07
Статей про резистивные сенсорные панели на сайте уже несколько, тут можно почитать как они работают, а тут как подключить её к AVR и произвести калибровку. Поэтому далее рассказ пойдёт лишь о тонкостях работы с такой панелью. Как известно, обмен данными c XPT2046 происходит по SPI, поэтому надо просто найти свободный и подключится к нему. Обычно чтобы посмотреть под какой SPI какие выводы...
Подключение TFT дисплея по FSMC к STM32, на примере SSD1963 .
3-08-2016, 19:11
Дело было так, один из посетителей сайта выслал мне, в качестве подарка, 5 дюймовый TFT дисплей, который управляется драйвером SSD1963. Дней через десять посылка прибыла, но на коробке, в которую он был упакован, была вмятина, а сам дисплей был разбит. Написал об этом отправителю и он сразу же заказал на моё имя такой же дисплей на ebay, за что ему спасибо. Прошло не более двух недель с момента...
Создание проекта в Keil uVision.
21-07-2016, 17:32
Один из вопросов, который возникает, при переходе на STM32: «Какую среду разработки выбрать?» Наверное самые популярные — это Coocox, IAR и Keil uVision, я пользуюсь последней. Главное её преимущество перед другими — это мощный симулятор, с поддержкой периферии и множеством виртуальных приборов. Все эти плюшки "упрощают жизнь" опытному разработчику и помогают новичку разбираться с богатой...
STM32 Режим захвата.
25-05-2016, 14:30
Режим захвата — это особый режим работы таймера, суть которого в следующем, при изменении логического уровня на определённом выводе микроконтроллера, значение счётного регистра записывается в другой регистр, который именуют регистром захвата. Для чего это надо? С помощью этого режима можно измерить длительность импульса или период сигнала. Режим захвата у STM32 обладает некоторыми особенностями:...
STM32 запуск АЦП по таймеру.
20-04-2016, 13:02
На днях мне понадобилось раз в секунду запускать АЦП преобразование и сразу же стало понятно, что битами SMPR[2:1], которые задают количество тактов между выборками АЦП, сделать это не получится, поэтому прийдётся искать другой способ. Максимальное количество тактов между выборками, которое можно задать с помощью этих битов, равно 239,5. Если к этому числу прибавить время преобразования — 12.5...
Отладка по SWD STM32.
12-01-2016, 14:10
У STM32 есть очень удобный интерфейс для отладки и прошивки МК — Serial Wire Debug, сокращено SWD. Его удобство заключается в том, что для отладки надо подключить всего два информационных вывода и соответственно два вывода питания. Схема подключения выглядит следующим образом. После того как выводы подключены, надо разрешить отладку по SWD в среде программирования, в KEIL это делается так....
STM32 не работает SPI3.
19-12-2015, 21:30
Обычно перед тем как собирать какое-то устройство реализую на макетке базовый функционал, так было и в этот раз. После того как базовый функционал был реализован, начал разводить плату, походу выяснилось, что гораздо проще развести плату если использовать SPI3, нежели SPI2, который использовался в проекте. Ну зачем создавать себе трудности, подумал тогда и развёл плату используя SPI3....
STM32 режимы  пониженного энергопотребления.
15-12-2015, 20:17
Сначала хотелось бы пару слов сказать о питающих напряжениях микроконтроллера, для нормальной работы STM32 необходимо от 2 до 3.6V, а уже встроенный стабилизатор обеспечивает 1.8 вольта для питания ядра. Ниже схематично изображена общая схема питания контроллера. Как видно, схема питания разделена на домены и каждый из них отвечает за питание определённой периферии/части МК. Уменьшить потребление...