Как стать автором
Обновить

Создаем проект STM32 C++ FreeRTOS в vscode для очень маленьких

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров14K

Жил себе спокойно, писал кодик в Keil и не парился. Писал изначально на СИ, но кода становилось все больше, а я все ленивее, перешел на С++ и ARM Compiler V6,19. Но пришел к тому что простых прерываний в таймере стало не достаточно, даже можно сказать не правильный подход. Задался желанием подключить какую-нибудь ОС. Выбор пал на FreeRTOS. Довольный, скачиваю операционку, подтягиваю файлы к проекту на плюсах, и получаю кучу ошибок. Попытка их устранить не увенчалась успехом. Вспомнил что есть CubeMX и там можно сгенерировать проект с уже подключенным freertoos. Проверил, 5-ым компилятором и языком СИ, проект отлично собирается, но как только переименовываем main.c в .cpp и выбираем компилятор 6,19, получаем кучу ошибок на ядро ОС, на определение inline и т.п. Так я и не смог подружить подружить ОС и C++ в Keil. Пришлось заменить среду разработки, изначально выбор пал на CubeIDE, все отлично дружится и собирается, но в душе оставались сомнения. В итоге финальным выбором стал vscode, далее опишу как создать проект именно в нем.

Здесь на сайте уже есть статьи по сборке проекта, ими и руководствовался, но пошел немного другим путем.

Читать далее

Настройка FDCAN в CubeMx

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.6K

Это почти полная копия моей статьи для внутреннего форума предприятия, где я работаю. Я решил, что эта информация может быть полезна широкому кругу людей, особенно для тех, кто никогда не работал с CAN. В статье описана пошаговая настройка FDCAN в cubeMx, а каждый шаг достаточно подробно описан.

Читать далее

Регистры STM32 в структурах на битовых полях, UART (Tx, Rx-длина?) + DMA

Время на прочтение18 мин
Количество просмотров20K

Цель статьи - рассказать, как получить удобный доступ к битам регистра STM32 без использования битовых операций и пользоваться битами микроконтроллера как обычными переменными. Чтобы не быть голословным, создадим проект UART+DMA с передачей и приёмом данных неизвестной длины, работающую чисто на структурах c битовыми полями, которые привязаны к адресам периферии STM32.

Читать далее

Настройка ToolChain(а) для Win10+GCC+С+Makefile+ARM Cortex-Mx+GDB

Время на прочтение16 мин
Количество просмотров28K

В тексте написано кокой путь проходят сорцы с момента написания до исполнения на микроконтроллере. Также про то как настроить ToolChain из бесплатных утилит. Показано на что стоит обратить внимание при запуске первого проекта на Cortex-M чипах. Этот текст, в сущности, пояснение того, что происходит под капотом большинства IDE.

Читать далее

Оцифровка звука на STM32 (АЦП+DMA) и кодирование в Speex для передачи

Время на прочтение7 мин
Количество просмотров50K
image В продолжение своей вчерашней статьи на Geektimes хочу рассказать подробнее про реализацию оцифровки и кодирования звука на микроконтроллере STM32.

В статье покажу как настроить проект в STM32CubeMX, собирать данные с АЦП в два кольцевых буфера посредствам DMA, подключить библиотеку Speex и кодировать данные. Возможно многим материал покажется весьма очевидным, но надеюсь хоть кому-то он будет полезен.

Прошу под кат.
Читать дальше →

PPM-to-USB адаптер на STM32F3Discovery, или Подключаем авиамодельный пульт к компьютеру как HID-джойстик с STM32Cube

Время на прочтение22 мин
Количество просмотров41K


В этой статье я расскажу, как:
  • Создать проект в STM32CubeMX и настроить таймеры для захвата внешних сигналов.
  • Декодировать PPM-сигнал с авиамодельного пульта.
  • Сделать Human Interface Device на STM32 и написать свой HID Report Descriptor.
  • Полетать в симуляторе на гоночном квадрокоптере. :)
Читать дальше →

STM32. Практика похудания или диета для контроллера

Время на прочтение5 мин
Количество просмотров8.4K


Что за бред, наверняка подумают некоторые читатели, увидев заголовок публикации. Не ошибся ли автор ресурсом? Или разместить это планировалось в хабе «Здоровье гика»? И будут отчасти правы, но лишь отчасти… Под катом речь пойдет о методике снижения-оптимизации энергопотребления электронных устройств.

Читать дальше →

STM32 Часть 1. Как поморгать светодиодиком

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров34K

Приветствую!

Данная статья открывает цикл статей о программировании микроконтроллеров STM32 для новичков.

Сегодня я расскажу как написать моргание светодиодом двумя способами с использованием инструментов, труднодоступных в 2023 году.

Читать далее

Разработка контроллера резервного питания. Как кризис сделал его сильней

Время на прочтение5 мин
Количество просмотров4K

Летом нас настиг кризис поставок микросхем. Контрактный сборщик сообщил что семейства MKE18F больше нет в продаже. В интернете на нас глядели пустые полки Digi-Key, Mouser, Avnet и прочих дистрибуторов. И вдруг на Octopart взгляд зацепился за STM32H753VIH6. Он был дороже, он был BGA, он требовал выше класс платы, но он был. Решать нужно мгновенно. Через несколько дней пропали бы и они. Дальше только у брокеров по 10-и кратной цене. Взяли все что было. Так начинается история новой версии контроллера резервного питания. Далее про новую трассировку и первый запуск.

Читать далее

Отправка и прием данных неизвестной длины по UART через DMA в freeRTOS на STM32 с использованием LL

Время на прочтение5 мин
Количество просмотров32K

В этой статье я расскажу о том, как реализовать работу с UART через DMA в freeRTOS.

Приступим!

Реализация PPPOS на stm32f4-discovery

Время на прочтение14 мин
Количество просмотров16K
Однажды передо мной возникла задача обеспечить выход в сеть Интернет на STM32 имея для этого только COM порт. Для решения этой задачи мне понадобился PPP, или, еcли быть точным, PPPoS (англ. Point-to-Point Protocol over Serial — один из способов реализации PPP, используется при подключении через COM-порт).

В процессе решения поставленной передо мной задачи я столкнулся с некоторыми трудностями, одна из которых недостаточное, на мой взгляд, освещение вопросов связанных с PPPoS в сети Интернет. Этим постом я постараюсь закрыть обозначенный пробел, на сколько позволят мои скромные знания.

Статья описывает создание проекта для System Workbench for STM32 с нуля. Показывает пример работы с UART. Есть примеры кода для реализации PPP. Ну и конечно, пример отправки сообщения на соседний компьютер.
Читать дальше →

STM32 bootloader DFU mode с использованием CubeMX. Инструкция пошаговая, step by step

Время на прочтение6 мин
Количество просмотров62K
Итак, сочинение сего мандригала было сподвигнуто практически полным отсутствием пошаговой инструкции с использованием обычного инструментария предлагаемого STMicroelectronics.

Великое множество обнаруженных в сети bootloader-ов, иногда весьма занятных, к сожалению «заточены» под какой-либо конкретный кристалл.

Предлагаемый материал содержит процедуру использования пакета CubeMX, «загружалки» DfuSeDemo и утилиты подготовки прошивки Dfu file manager, т. е. Мы абстрагируем наши «хотелки» от железки, да простят меня гуру макроассемблера и даташита.
Читать дальше →

Правка скриптов автогенерации cubeMX/cubeIDE

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров1.4K

На примере добавления дополнительных классов USB (Media Transfer Protocol (MTP) и Smart Card (CCID)) показать каким образом можно вносить изменения в скрипты автоконфигурации для ускорения создания последующих проектов, а также для исправления существующих ошибок в них, чтобы не держать в голове, какие в каком случае постоянно вносить правки для исправления тех или иных ошибок.

Читать далее