![STM32 ONE PULSE MODE.](https://hubstub.ru/uploads/posts/2018-10/thumbs/1540574874_screenshot_4.jpg)
25-10-2018, 14:22
В одном из проектов использовал следующий механизм для управления бузером, включал его вручную, запускал таймер и выключал в прерывании, которое возникало при переполнении таймера. Со временем количество прерываний в проекте выросло и часто другие прерывания не давали сработать прерыванию, в котором выключался бузер. В результате чего, бузер всегда издавал разный по длительности звуковой сигнал....
![STM32 I2S.](https://hubstub.ru/uploads/posts/2018-09/thumbs/1537180643_screenshot_2.jpg)
30-08-2018, 12:33
Протокол I2S, не путать с I2C, предназначен для передачи аудио потока. В моем устройстве этот протокол используется для передачи аудио потока между кодеком и МК. Сразу хотелось бы отметить, что как такового отдельного модуля I2S у STM32 нет, а тот что есть реализуется на основе модуля SPI и тот же регистр DR[0:15] у них общий....
![STM32 I2C.](https://hubstub.ru/uploads/posts/2018-06/thumbs/1530101783_screenshot_1.jpg)
27-06-2018, 11:11
В последнее время все чаще натыкаюсь на негативные отзывы о шине I2C у STM32, мол работа с ней это танцы с бубном и тд. За последний месяц мне удалось запустить две микросхемы, работающие по I2C и ни каких танцев, только вдумчивое чтение даташита....
![STM32 FLASH.](https://hubstub.ru/uploads/posts/2018-05/thumbs/1525789280_screenshot_1.jpg)
5-05-2018, 19:10
Думаю постоянные посетители сайта заметили, что предпочитаю все делать на регистрах, но иногда все таки использую SPL. Например, в статье про самописный бутлоадер, использовались библиотечные функции для работы с флэш памятью. В очередной раз, подключая эту библиотеку, решил, что она занимает много места и решил самостоятельно реализовать необходимые функции. Для работы с флэш памятью...
![STM32 RTC, Calendar.](https://hubstub.ru/uploads/posts/2018-04/thumbs/1524135704_screenshot_2.jpg)
19-04-2018, 13:25
Начнем с того, что RTC — это аббревиатура которая расшифровывается следующим образом Real-time clock или по-русски, часы реального времени. В былые времена, при использовании МК AVR в качестве RTC, использовал отдельную микросхему, общение с которой происходило по определенному протоколу. У STM32 RTC же представляет собой модуль, реализованный внутри МК. У STM32 RTC обладает следующими...
![STM32 проблемы при подключении дисплея по LTDC.](https://hubstub.ru/uploads/posts/2018-03/thumbs/1522072623_t.jpg)
26-03-2018, 14:41
В одной из прошлых статей описывал, как подключить дисплей к микроконтроллеру семейства STM32, используя интерфейс LTDC. Статья оканчивалась видеороликом, в котором на встроенный в DISCOVERY дисплей, выводилось изображение. Конечно же следующим желанием было запустить, что-то побольше и подключить это самостоятельно, чтобы в голове сложилась полная картина. С Китая был заказан 7-дюймовый дисплей...
![STM32 DMA MEM2MEM.](https://hubstub.ru/uploads/posts/2017-11/thumbs/1511271522_screenshot_2.jpg)
21-11-2017, 15:28
В одной из прошлых статей уже описывал, что такое DMA и приводил пример его работы в связке с АЦП. В том примере, результаты преобразования АЦП записывались в буфер без участия ядра. В этот раз мне надо было перенести буфер из одного участка памяти в другой и я точно знал, что это можно сделать с помощью DMA используя режим MEM2MEM....
![STM32 измерение частоты.](https://hubstub.ru/uploads/posts/2017-10/thumbs/1507893198_screenshot_3.jpg)
13-10-2017, 10:31
В одной из прошлых статей рассказывал про режим захвата у STM32 и приводил пример как с его помощью измерить период сигнала. Но таким способом не получится ТОЧНО измерить период высокочастотного сигнала.(дальше станет понятно какой сигнал считать высокочастотным) Предположим, что частота исследуемого сигнала 1MНz, а наш таймер отсчитывает 72млн в секунду. Переведем значения частоты в период....
![STM32 быстрое преобразование Фурье.](https://hubstub.ru/uploads/posts/2016-12/thumbs/1481726713_screenshot_4.jpg)
14-12-2016, 13:42
Давно хотелось прикрутить к осциллографу, который описывал тут, преобразование Фурье, но почему-то руки не доходили. Совсем недавно, месяц назад решил увеличить частоту сэмплирования ослика, заменив stm32F103VE с частотой сэмплирования 1М на stm32F303VC c частотой сэмплирования 5М. После замены чипа и изменения программы решил всё-таки разобраться с быстрым преобразованием Фурье(БФП или FFT). ...
![STM32 BSRR VS ODR.](/templates/Default/dleimages/no_image.jpg)
20-10-2016, 19:43
Те кто читает эту статью, думаю знают, что записать единицу в нулевой бит порта А можно двумя способами GPIOA->ODR |= GPIO_ODR_ODR0; или GPIOA->BSRR = GPIO_BSRR_BS0; И везде пишут, что второй способ правильнее так, как установка бита в таком случае выполянется атомарно. Тут не поспоришь. А теперь давайте представим ситуацию, у нас есть восьмибитная шина, по которой передаются данные,...
![Измерение температуры с помощью термопары, на примере MAX6675 для STM32.](https://hubstub.ru/uploads/posts/2016-09/thumbs/1474489961_screenshot_5.jpg)
21-09-2016, 16:41
В последнее время появилась необходимость в печке для пайки оплавлением. Для тех кто не знает, что это такое, в двух словах опишу, как она работает и для чего она нужна. Есть у меня десяток плат, которые надо собрать, элементы на плате в основном smd. Сейчас платы собираются по следующему алгоритму: сначала с помощью шприца наношу на контактные площадки паяльную пасту, затем раскладываю элементы....
![STM32 тактирование.](https://hubstub.ru/uploads/posts/2016-09/thumbs/1474115021_screenshot_2.jpg)
17-09-2016, 15:15
Первое время для того, чтобы упростить написание программ для STM32 не вдавался в тонкости настройки системы тактирования, а выбирал частоту системной шины в файле system_stm32f10x.c, просто расскоментировав нужную строку. Но если уж доходило дело до настройки частоты тактирования отдельных блоков(например АЦП), то использовал CUBE. Перед глазами вся система тактирования, что очень удобно и...
![Подключение резистивной сенсорной панели c драйвером XPT2046 к STM32 и её калибровка по четырём точкам.](https://hubstub.ru/uploads/posts/2016-08/thumbs/1471014717_screenshot_1.jpg)
Статей про резистивные сенсорные панели на сайте уже несколько, тут можно почитать как они работают, а тут как подключить её к AVR и произвести калибровку. Поэтому далее рассказ пойдёт лишь о тонкостях работы с такой панелью. Как известно, обмен данными c XPT2046 происходит по SPI, поэтому надо просто найти свободный и подключится к нему. Обычно чтобы посмотреть под какой SPI какие выводы...
![Подключение TFT дисплея по FSMC к STM32, на примере SSD1963 .](https://hubstub.ru/uploads/posts/2016-08/thumbs/1470240107_screenshot_2.jpg)
Дело было так, один из посетителей сайта выслал мне, в качестве подарка, 5 дюймовый TFT дисплей, который управляется драйвером SSD1963. Дней через десять посылка прибыла, но на коробке, в которую он был упакован, была вмятина, а сам дисплей был разбит. Написал об этом отправителю и он сразу же заказал на моё имя такой же дисплей на ebay, за что ему спасибо. Прошло не более двух недель с момента...
![Создание проекта в Keil uVision.](https://hubstub.ru/uploads/posts/2016-07/thumbs/1469183717_keil.jpg)
21-07-2016, 17:32
Один из вопросов, который возникает, при переходе на STM32: «Какую среду разработки выбрать?» Наверное самые популярные — это Coocox, IAR и Keil uVision, я пользуюсь последней. Главное её преимущество перед другими — это мощный симулятор, с поддержкой периферии и множеством виртуальных приборов. Все эти плюшки "упрощают жизнь" опытному разработчику и помогают новичку разбираться с богатой...
![STM32 Режим захвата.](https://hubstub.ru/uploads/posts/2016-05/thumbs/1464183972_screenshot_9.png)
25-05-2016, 14:30
Режим захвата — это особый режим работы таймера, суть которого в следующем, при изменении логического уровня на определённом выводе микроконтроллера, значение счётного регистра записывается в другой регистр, который именуют регистром захвата. Для чего это надо? С помощью этого режима можно измерить длительность импульса или период сигнала. Режим захвата у STM32 обладает некоторыми особенностями:...
![STM32 запуск АЦП по таймеру.](https://hubstub.ru/uploads/posts/2016-04/thumbs/1461146184_regular.jpg)
20-04-2016, 13:02
На днях мне понадобилось раз в секунду запускать АЦП преобразование и сразу же стало понятно, что битами SMPR[2:1], которые задают количество тактов между выборками АЦП, сделать это не получится, поэтому прийдётся искать другой способ. Максимальное количество тактов между выборками, которое можно задать с помощью этих битов, равно 239,5. Если к этому числу прибавить время преобразования — 12.5...
![Отладка по SWD STM32.](https://hubstub.ru/uploads/posts/2016-01/thumbs/1452593185_screenshot_14.png)
12-01-2016, 14:10
У STM32 есть очень удобный интерфейс для отладки и прошивки МК — Serial Wire Debug, сокращено SWD. Его удобство заключается в том, что для отладки надо подключить всего два информационных вывода и соответственно два вывода питания. Схема подключения выглядит следующим образом. После того как выводы подключены, надо разрешить отладку по SWD в среде программирования, в KEIL это делается так....
![STM32 не работает SPI3.](https://hubstub.ru/uploads/posts/2015-12/thumbs/1450547695_screenshot_4.png)
19-12-2015, 21:30
Обычно перед тем как собирать какое-то устройство реализую на макетке базовый функционал, так было и в этот раз. После того как базовый функционал был реализован, начал разводить плату, походу выяснилось, что гораздо проще развести плату если использовать SPI3, нежели SPI2, который использовался в проекте. Ну зачем создавать себе трудности, подумал тогда и развёл плату используя SPI3....
![STM32 режимы пониженного энергопотребления.](https://hubstub.ru/uploads/posts/2015-12/thumbs/1450194827_screenshot_10.png)
15-12-2015, 20:17
Сначала хотелось бы пару слов сказать о питающих напряжениях микроконтроллера, для нормальной работы STM32 необходимо от 2 до 3.6V, а уже встроенный стабилизатор обеспечивает 1.8 вольта для питания ядра. Ниже схематично изображена общая схема питания контроллера. Как видно, схема питания разделена на домены и каждый из них отвечает за питание определённой периферии/части МК. Уменьшить потребление...