Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 15.01.2026
Сообщений: 3

Как создавать проекты под stm32F405 на языке c++?

11.02.2026, 00:11. Показов 1365. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как создавать проекты под stm32F405 на языке c++? Я знаю что можно писать код на c++, но я не нашел как настроить правильно проект. Пытался найти на ютубе, гуглил, запрягал нейронки, но нечего не нашел. Прошу помощи.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.02.2026, 00:11
Ответы с готовыми решениями:

Не работает USB MSC STM32F405
Приветствую всех! Делаю проект на платформе STM32F405 + SDIO + USB_FS_MSC + CubeMX + CooCox ...

организация двух CAN сетей на одном STM32f405
привет всем, делаю устройство на основе STM32F405 которое ставится в разрыв текущей CAN сети.. ,...

stm32f405 +servo + ldo = проблема
подскажите знающие.. собрал схему (см фото) проц stm32f405 + простенькая Серва( 100ма) ...

17
Эксперт .NET
 Аватар для Rius
13120 / 7680 / 1675
Регистрация: 25.05.2015
Сообщений: 23,429
Записей в блоге: 14
11.02.2026, 05:48
Cmake освойте. Datasheet и reference manual читать научитесь.
Пример проекта для stm32f030.
0
Windows must die
672 / 851 / 103
Регистрация: 23.11.2021
Сообщений: 5,000
Записей в блоге: 17
11.02.2026, 09:00
Лучший ответ Сообщение было отмечено fogoten как решение

Решение

Да просто в Makefile заменить gcc на g++:
Code
1
2
3
4
5
6
7
8
...
PREFIX      ?= /opt/bin/arm-none-eabi
CC          := $(PREFIX)-g++
LD          := $(PREFIX)-g++
...
SRC         := $(wildcard *.cpp)
OBJS        := $(addprefix $(OBJDIR)/, $(SRC:%.cpp=%.o))
...
Делов-то!
Вот только учесть, что нельзя всякие деструкторы и т.п., где вызываются аллокаторы и деаллокаторы.
А так-то люди приводили код на С++ под STM32. На шаблонах очень изящно выглядит. Правда, сначала нужно свой "бэкграунд" написать. А это вам не просто приаттачить заголовочные файлы от ST!

В общем, подозреваю, что ТС плюнет, и продолжит на С.
1
4040 / 2652 / 582
Регистрация: 11.09.2009
Сообщений: 9,465
11.02.2026, 10:54
Цитата Сообщение от Eddy_Em Посмотреть сообщение
подозреваю, что ТС плюнет, и продолжит на С.
... и в общем-то будет прав. Нефиг мучать зверушку с 160 МГц тактовой и 256К слов памяти монструозными конструкциями совершенно чуждого ему языка.
Писать-то может и проще, но что от производительности контроллера остаётся?
0
0 / 0 / 0
Регистрация: 15.01.2026
Сообщений: 3
11.02.2026, 10:58  [ТС]
получается от этой задумки нету смысла и писать лучше на с? Просто я понятия не имею как лучше работать с контроллером и я слышал что можно писать на с++ поэтому и решил спросить тут .
0
4040 / 2652 / 582
Регистрация: 11.09.2009
Сообщений: 9,465
11.02.2026, 10:59
Вот например, писать алгоритмы на обычном русском ещё проще. И что, кто-то будет пробовать?
0
Windows must die
672 / 851 / 103
Регистрация: 23.11.2021
Сообщений: 5,000
Записей в блоге: 17
11.02.2026, 11:04
Цитата Сообщение от i8085 Посмотреть сообщение
Писать-то может и проще, но что от производительности контроллера остаётся?
Все будет хорошо, если писать правильно. Я видел у пары авторов куски дизасма их кода. Ничем не хуже, чем самому на асме писать, или на С.
Цитата Сообщение от fogoten Посмотреть сообщение
я понятия не имею как лучше работать с контроллером
Так начинать в этом случае нужно с чтения даташита, мануалов, аппноутов и эрраты, а не выбора языка!
0
4040 / 2652 / 582
Регистрация: 11.09.2009
Сообщений: 9,465
11.02.2026, 11:15
Цитата Сообщение от fogoten Посмотреть сообщение
я понятия не имею как лучше работать с контроллером и я слышал ...
Попробуйте написать что-нибудь простенькое на ассемблере. В даташите на контроллер есть описание команд. Прочувствуйте контроллер. После этого вы будете примерно представлять, сколько лишнего приходится перелопачивать контроллеру, выполняя программу, написанную на ЯВУ. Сможете писать на ЯВУ так, чтобы не грузить его лишним, если мысленно будете представлять, во что выливается каждая красивая коротенькая строчка. И оптимизация кода, имеющаяся в компиляторе, тут мало помогает. Не может оптимизатор переписать алгоритм более простыми "словами".
Да, языки высого уровня позволяют написать программу быстрее. Но за счёт кратного расходования вычислительных ресурсов контроллера. Всё-таки контроллер - не суперкомпьютер, где всё равно, посчитается за наносекунду или за десять, и займёт памяти мегабайт или гигабайт. Это там это копейки, а в контроллере легко упереться в 100%, и простенькая задачка потребует перехода на более мощный контроллер.
Хотя сейчас это приветствуется - производителям выгодно.
1
Эксперт .NET
 Аватар для Rius
13120 / 7680 / 1675
Регистрация: 25.05.2015
Сообщений: 23,429
Записей в блоге: 14
11.02.2026, 11:31
Цитата Сообщение от fogoten Посмотреть сообщение
получается от этой задумки нету смысла и писать лучше на с? Просто я понятия не имею как лучше работать с контроллером и я слышал что можно писать на с++ поэтому и решил спросить тут .
Смысл есть. И писать можно. Особенно если уметь правильно. В C++ есть как полезные вещи, которых нет и не будет в C, так и монструозные вырвиглазные конструкции.
1
4040 / 2652 / 582
Регистрация: 11.09.2009
Сообщений: 9,465
11.02.2026, 22:51
Цитата Сообщение от Rius Посмотреть сообщение
если уметь правильно
Золотые слова.
Вот только для этого надо хорошо представлять, что происходит в системе до последнего битика.
При начале знакомства с контроллерами с языков высокого уровня, особенно с таких, как С++, это гарантированно исключено.
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3409 / 2730 / 575
Регистрация: 04.09.2018
Сообщений: 8,567
Записей в блоге: 3
12.02.2026, 02:19
i8085, ну тут же и так все ясно изначально.
0
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 352
12.02.2026, 10:03
ТС возможно даже хороший программист, но одно дело писать в "среде" и для "среды", имею ввиду ОС, а другое дело для МК. В нем нет "среды", это даже не ДОС. Перво наперво нужно осознать что такое мк, как выше и писали.
Объекты это всё таки виртуализация, в ОС можно завиртуалить что угодно и придать объекту свойств.
В мк все прозаичнее))
0
1469 / 484 / 72
Регистрация: 22.09.2023
Сообщений: 1,475
12.02.2026, 10:09
Цитата Сообщение от i8085 Посмотреть сообщение
что происходит в системе до последнего битика
Это сильное преувеличение. Понимать надо, но не прям вот настолько.

Добавлено через 32 секунды
Цитата Сообщение от shonty Посмотреть сообщение
Объекты это всё таки виртуализация
Глупость какая.
0
47 / 45 / 2
Регистрация: 23.01.2019
Сообщений: 352
12.02.2026, 10:44
Цитата Сообщение от Dushevny Посмотреть сообщение
Глупость какая.
ну абстракция, в виртуальном мире под комфортным колпаком ОС Где есть "объект" и его стабильные "свойства".
Вобщем я за работу с уровнями и интерфейсами, а не с "объектами"
0
1469 / 484 / 72
Регистрация: 22.09.2023
Сообщений: 1,475
12.02.2026, 10:53
Цитата Сообщение от shonty Посмотреть сообщение
ну абстракция, в виртуальном мире под комфортным колпаком ОС Где есть "объект" и его стабильные "свойства".
И вы знаете еще много умных слов, это понятно. Однако полиморфизм не является обязательной частью объектно-ориентированного программирования. И я вам даже скажу по секрету, что C++ - это даже не обязательно объектно-ориентированное программирование.
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,921
12.02.2026, 12:18
Цитата Сообщение от i8085 Посмотреть сообщение
Нефиг мучать зверушку с 160 МГц тактовой и 256К слов памяти монструозными конструкциями совершенно чуждого ему языка.
Писать-то может и проще, но что от производительности контроллера остаётся?
В том-то и дело, что при правильном использовании С++ (особенно шаблонов) можно получить эффективность даже выше, чем в Си.
Другой вопрос сколько времени придется изучать сам С++ чтобы такого уровня достичь.
Цитата Сообщение от fogoten Посмотреть сообщение
получается от этой задумки нету смысла и писать лучше на с?
Пока нет опыта, лучше писать на Си или "С++ в стиле Си".
Имеет смысл поскорее освоить ассемблер и дизассемблер, чтобы смотреть во что разворачивается та или иная конструкция языка. И уже опираясь на это можно тестировать всякие хитрости вроде тех же шаблонов или классов.
Еще раз: при грамотном использовании они могут немного поднять производительность и читабельность кода. Но при неграмотном - здорово снизят.
Цитата Сообщение от i8085 Посмотреть сообщение
Попробуйте написать что-нибудь простенькое на ассемблере.
Поддерживаю. Впрочем, без фанатизма: асм хорош чтобы прочувствовать контроллер, чтобы проверять конкретные моменты, чтобы делать точечные оптимизации. Но полноценные программы на нем не пишут - слишком долго и слишком легко ошибиться.
0
334 / 93 / 5
Регистрация: 19.07.2024
Сообщений: 516
15.02.2026, 07:23
Цитата Сообщение от fogoten Посмотреть сообщение
Подскажите пожалуйста как создавать проекты под stm32F405 на языке c++? Я знаю что можно писать код на c++, но я не нашел как настроить правильно проект.
Установите любую среду разработки для МК которая нравится (IAR, Keil, etc.); найдите в ней примеры проектов; выберите и установите один из них, который наиболее близок к вашему МК; изучайте и модифицируйте его.
Так проще всего. Но от прочтения даташита+мануала+errata на ваш МК наличие готового примера не освобождает.

PS: И не верьте чуши (которую тут пишут), что си++ не подходит для МК.
1
Эксперт по электронике
6790 / 3217 / 335
Регистрация: 28.10.2011
Сообщений: 12,565
Записей в блоге: 7
18.02.2026, 01:28
Цитата Сообщение от fogoten Посмотреть сообщение
Подскажите пожалуйста как создавать проекты под stm32F405 на языке c++?
Так же как на Си.
В какой IDE проект создаете? Или без IDE?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.02.2026, 01:28
Помогаю со студенческими работами здесь

STM32F405 +STOP mode+USART
Доброго времени суток, ситуация такая, в МК крутится программка которая опрашивает акс-р, и далее...

stm32f405 sdio. Выходит таймаут
Переношу проект с 103 на 405. В первом карта была подключена к SPI, на 405 хочу подключить к SDIO....

Stm32f405 + ads7056
Здравствуйте. В основном занимаюсь схемотехникой(dc-dc, аналог и тд), контроллеры пока только...

Прерывания программ микроконтроллеров, создаваемых в Atmel Studio 6.0
Я недавно начал осваивать микроконтроллеры и пока еще тока сумел освоить работу с портами...

Как можно запрограммировать релейно-контактной цепи на языке Ассемблера микроЭВМ I8051
Как можно запрограммировать релейно-контактной цепи на языке Ассемблера микроЭВМ I8051


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru