Серия STM32H7 — это мощный инструмент в мире микроконтроллеров. Известная своей высокой производительностью, она пользуется большой популярностью среди разработчиков.
Эти микроконтроллеры разработаны компанией STMicroelectronics, лидером в полупроводниковой отрасли. Они отличаются впечатляющей скоростью обработки данных и расширенными функциональными возможностями.
Платы разработчика STM32H7 идеально подходят для проектов, требующих производительности в реальном времени и высокой вычислительной мощности. Они подходят для широкого спектра применений.
Независимо от того, являетесь ли вы инженером или любителем, платы STM32H7 предоставляют все необходимые инструменты. Они универсальны и адаптируются к различным требованиям проектов.
В этом руководстве мы подробно рассмотрим серию STM32H7. От функций до программирования — вы узнаете все, что нужно для начала работы.
Что такое серия микроконтроллеров STM32H7?
Серия STM32H7 выделяется как лучший выбор для высокопроизводительных микроконтроллеров. Эти чипы обладают впечатляющими вычислительными возможностями, что делает их идеальным решением для сложных задач.
Оснащенные ядром ARM Cortex-M7, они могут достигать скорости до 480 МГц. Это делает их идеальным выбором для приложений, требующих значительной вычислительной мощности и эффективности.
Ключевые характеристики серии STM32H7:
- До 2 МБ флэш-памяти и 1 МБ RA
- Расширенные возможности подключения, такие как Ethernet, USB и CAN
- Поддержка FreeRTOS и других операционных систем реального времени

Эти микроконтроллеры подходят для различных применений, включая промышленную автоматизацию, бытовую электронику и автомобильные системы. Их надежная конструкция обеспечивает долгосрочную надежность, что имеет решающее значение во многих отраслях промышленности.
Благодаря надежным функциям безопасности микроконтроллеры STM32H7 обеспечивают целостность и безопасность данных. Такие функции, как аппаратная криптография и безопасная загрузка, делают их подходящими для безопасных приложений.
Таким образом, серия STM32H7 отличается универсальностью, производительностью и надежностью. Это отличный выбор для разработчиков, стремящихся создать эффективные и безопасные встроенные системы.
Популярные платы разработчика STM32H7
Серия STM32H7 предлагает широкий выбор плат разработчика, каждая из которых отвечает различным требованиям проектов. Эти платы имеют различные форм-факторы и конфигурации, что делает их универсальными для множества применений.
STM32H743ZI Ядро платы
Одним из примечательных вариантов является плата STM32H743ZI Nucleo. Она популярна среди разработчиков благодаря удобному дизайну и обширной поддержке периферийных устройств. Эта плата идеально подходит для проектов по управлению двигателями и промышленной автоматизации. Ее совместимость с экосистемой Arduino повышает гибкость при создании прототипов.

Набор для разработчиков STM32H750B-DK Discovery
Еще одна популярная плата — набор STM32H750B-DK Discovery. Эта плата предназначена для приложений, требующих улучшенной графики и сенсорных интерфейсов. Она оснащена ЖК-дисплеем, что делает ее подходящей для приложений человеко-машинного интерфейса (HMI).

Набор для разработчиков STM32H7S78-DK Discovery
Набор STM32H7S78-DK Discovery выделяется как мощная платформа для высокопроизводительных приложений. Оснащенный передовыми графическими возможностями и дисплеем с высоким разрешением, он идеально подходит для разработки сложных пользовательских интерфейсов и богатых мультимедийных возможностей. Этот набор также предлагает надежные возможности подключения и полный набор периферийных устройств, что делает его универсальным для сложных встроенных проектов, требующих как вычислительной мощности, так и передовых визуальных возможностей.

STM32H7 против ESP32: подробное сравнение
При выборе микроконтроллера очень важно сравнить STM32H7 и ESP32. Оба имеют свои уникальные преимущества и удовлетворяют разные потребности.
STM32H7 выделяется своей исключительной вычислительной мощностью. Он может работать на частоте до 480 МГц, что делает его подходящим для интенсивных вычислений. ESP32, напротив, предлагает умеренную вычислительную мощность, но интегрирует Wi-Fi и Bluetooth, что делает его популярным выбором для IoT.
Разработчики часто выбирают STM32H7 из-за его обширной поддержки периферийных устройств и интерфейсов. Он идеально подходит для приложений, требующих нескольких протоколов связи, таких как I2C, SPI и UART. С другой стороны, ESP32 отличается беспроводной связью. Его надежные Wi-Fi и
Bluetooth подходят для интеллектуальных устройств и домашней автоматизации.
Вот краткое сравнение характеристик:
STM32H7
CPU: Arm Cortex-M7 (Single or Dual Core, up to 600 MHz)
RAM: Up to 1.4 MB SRAM, plus other RAM
Flash Memory: Up to 2 MB embedded Flash
Connectivity: Ethernet, USB, SPI, I2C, UART, CAN, etc.
Peripherals: ADC, DAC, Timers, PWM, RNG, LCD Controller, etc.
Power Consumption: As low as 32 µA in Stop mode, total current consumption as low as 4µA
Main Applications: High-performance industrial control, graphical interfaces, real-time processing, complex embedded systems
Ecosystem: Extensive STM32 ecosystem, including STM32CubeMX, HAL libraries, etc.
Price: Typically higher
ESP32
CPU: Xtensa LX6 Dual-Core (up to 240 MHz)
RAM: 520 KB SRAM
Flash Memory: 448 KB ROM (built-in), external Flash expandable
Connectivity: Wi-Fi (802.11 b/g/n), Bluetooth (v4.2 BR/EDR & BLE), SPI, I2S, I2C, UART, SD/SDIO, etc.
Peripherals: ADC, DAC, Touch Sensors, PWM, IR Remote, Pulse Counter, etc.
Power Consumption: Deep sleep current 5 µA
Main Applications: Internet of Things (IoT), wireless communication, smart home, low-power applications
Ecosystem: ESP-IDF, Arduino IDE, MicroPython, etc.
Price: Typically lower
Summary:
The **STM32H7** series are high-performance microcontrollers designed for applications requiring significant processing power, rich peripherals, and real-time capabilities, such as advanced industrial control, graphical user interfaces, and complex embedded systems. They generally feature more memory and higher clock frequencies.
The **ESP32** series, on the other hand, is a microcontroller with integrated Wi-Fi and Bluetooth, making it ideal for Internet of Things (IoT) applications, wireless communication, and scenarios requiring low-power connectivity. Its strengths lie in its wireless connectivity features and more accessible price point.
The choice between these microcontrollers depends on your specific project needs, including performance requirements, power budget, connectivity demands, and cost considerations.
Начало работы с программированием STM32H7
Погружение в программирование STM32H7 может быть одновременно увлекательным и полезным. Эта серия отличается высокой вычислительной мощностью, что делает ее популярной для сложных приложений. Понимание того, как программировать эти микроконтроллеры, имеет решающее значение для использования их полного потенциала.
STM32CubeIDE — основная среда разработки для программирования STM32H7. Она предоставляет интегрированный набор инструментов для кодирования, отладки и развертывания приложений. Эта IDE поддерживает несколько языков программирования, включая C и C++, что позволяет удовлетворить различные предпочтения разработчиков.
STM32H7 поддерживает несколько операционных систем реального времени (RTOS), включая FreeRTOS. RTOS позволяет разработчикам создавать приложения с точным контролем времени, что крайне важно для систем реального времени. Использование RTOS может значительно повысить производительность ваших проектов STM32H7.
Чтобы начать, выполните следующие действия:
- Установите STM32CubeIDE: загрузите и настройте IDE.
- Настройте набор инструментов: настройте компиляторы и необходимые плагины.
- Изучите основы: ознакомьтесь с интерфейсом и функциями STM32CubeIDE.
- Примеры проектов: начните с предоставленных шаблонов, чтобы понять рабочий процесс.
- Изучите библиотеки: используйте промежуточное программное обеспечение и библиотеки периферийных устройств.
Пример программирования — мигание светодиода
В этом случае вы научитесь настраивать базовый проект для мигания светодиода. Этот фундаментальный «Hello World» встроенного программирования познакомит вас с управлением GPIO (General Purpose Input/Output), средой разработки STM32CubeIDE и основными шагами настройки, кодирования, компиляции и прошивки вашей платы STM32H7.
К концу этого руководства вы успешно заставите мигать светодиод на вашей плате разработчика, заложив прочную основу для более сложных проектов.
Требования к оборудованию
Прежде чем начать, убедитесь, что у вас есть следующее оборудование:
- Плата разработчика STM32H7:
- Любой набор STM32H7 Discovery Kit (например, STM32H750B-DK, STM32H7S78-DK)
- Или плата STM32H7 Nucleo (например, STM32H743ZI Nucleo)
- (Большинство этих плат имеют по крайней мере один программируемый пользователем светодиод, обычно подключенный к выводу GPIO, такому как PC13, PB0, PB1 или PE1)
- Кабель USB Type-A к Micro-B/Type-C: для питания платы и подключения ее к компьютеру для программирования/отладки.
- Персональный компьютер: под управлением Windows, macOS или Linux.
Требования к программному обеспечению
На вашем компьютере должно быть установлено следующее программное обеспечение:
- STM32CubeIDE: это официальная интегрированная среда разработки STMicroelectronics, которая включает в себя компилятор GCC, отладчик и графический инструмент настройки STM32CubeMX. Она бесплатна и настоятельно рекомендуется к использованию.
- Скачать можно по адресу: https://www.st.com/en/development-tools/stm32cubeide.html
Пошаговое руководство
Часть 1: Настройка проекта STM32CubeIDE
Запустите STM32CubeIDE: откройте приложение. Если вы запускаете его впервые, может появиться запрос на указание местоположения рабочей области. Выберите подходящий каталог.

- Создание нового проекта STM32:
Перейдите в File > New > STM32 Project.

После инициализации системы STM32 target selector вы можете указать свой микроконтроллер STM32H7 в окне «Target Selection» (Выбор цели).

Вы можете использовать строку поиска «Номер детали». Например:
- Если у вас есть STM32H743ZI Nucleo, введите
STM32H743ZI. - Если у вас STM32H750B-DK, введите
STM32H750VB. - Если у вас STM32H7S78-DK, введите
STM32H7S78.
- Если у вас есть STM32H743ZI Nucleo, введите
Выберите свое устройство из списка и нажмите Next.

- Название проекта и настройки:
- Название проекта: введите описательное название, например
H7_LED_Blink. - Целевой тип проекта: Оставьте как
Empty. - Нажмите
Finish. - Если появится запрос на инициализацию всех периферийных устройств в режиме по умолчанию, нажмите
Yes. Откроется интерфейс настройки STM32CubeMX.
- Название проекта: введите описательное название, например

Часть 2: Настройка STM32CubeMX (в STM32CubeIDE)
После создания проекта откроется файл .ioc откроется файл (файл конфигурации STM32CubeMX). Здесь вы можете графически настроить микроконтроллер.
Распиновка и конфигурация:
Определите вывод светодиода: обратитесь к руководству пользователя вашей платы разработчика, чтобы узнать, к какому выводу GPIO подключен встроенный светодиод пользователя. Обычно это выводы
PC13(для плат Nucleo-144),PB0,PB1илиPE1.Настройте вывод GPIO:
Найдите идентифицированный вывод на схеме микросхемы или в «Виде распиновки» (например,
PC13).Щелкните левой кнопкой мыши по выводу и выберите
GPIO_Output. Контакт станет зеленым, что означает, что он настроен как выход.Дополнительно — пользовательская метка: рекомендуется маркировать контакты. Вы можете щелкнуть правой кнопкой мыши по контакту и выбрать
Enter User Label. ВведитеOnboard_LED(или другое подходящее описание).

- Настройка параметров GPIO:
- На вкладке «Распиновка и конфигурация» разверните
System Core > GPIO. - Найдите строку, соответствующую настроенному выводу светодиода (например,
PC13). - В столбце «Уровень выхода GPIO» установите значение
Low. (Мы хотим, чтобы светодиод был выключен). - Убедитесь, что «Режим GPIO» установлен на
Output Push Pull. - Оставьте другие настройки (подтяжка/опускание, максимальная скорость вывода) по умолчанию для этого базового примера.
- На вкладке «Распиновка и конфигурация» разверните
- Настройка параметров GPIO:

- Ядро системы -> Конфигурация SYS:
- На вкладке «Распиновка и конфигурация» разверните
System Core > SYS. - В разделе «Конфигурация» установите
DebugопциюSerial Wire. Это очень важно для отладки и перепрошивания.
- На вкладке «Распиновка и конфигурация» разверните
- Настройка часов:
- Перейдите на вкладку
Clock Configuration. - Для простого мигания светодиода обычно достаточно настроек тактовой частоты по умолчанию, сгенерированных CubeIDE. Обычно здесь не требуется никаких изменений, если вам не нужны очень специфические значения тактовой частоты.
- Перейдите на вкладку
- Менеджер проекта и генерация кода:
- Перейдите на вкладку
Project Managerвкладку. - Проверьте
Project NameиToolchain/IDE(должно бытьSTM32CubeIDE). - Генерация кода: нажмите кнопку
Generate Code(значок шестеренки илиProject > Generate Code). - Если появится запрос на сохранение изменений, нажмите
Yes. - Это действие сгенерирует весь необходимый код инициализации для вашего проекта на основе конфигурации CubeMX.
- Перейдите на вкладку

Часть 3: Реализация кода
Теперь, когда базовая структура проекта и периферийные конфигурации настроены, мы напишем фактическую логику мигания.
Перейдите в «
main.c» (Проекты > Проекты > Проекты > Проекты > Проекты > Проекты > Проекты > Проекты > ПроВ панели Project Explorer (слева от STM32CubeIDE) перейдите к:
H7_LED_Blink(название вашего проекта)> Core > Src > main.cДважды щелкните
main.c, чтобы открыть его в редакторе.
Найдите цикл
while(1):Прокрутите вниз
main.c, пока не найдете/* USER CODE BEGIN 3 */и/* USER CODE END 3 */комментарии внутриwhile(1)цикле. Здесь вы добавите код своего приложения.
Добавьте логику мигания:
Внутри
while(1)цикла добавьте следующие две строки кода:
/* USER CODE BEGIN 3 */
HAL_GPIO_TogglePin(Onboard_LED_GPIO_Port, Onboard_LED_Pin); // Toggle the LED state
HAL_Delay(500); // Wait for 500 milliseconds (0.5 seconds)
/* USER CODE END 3 */
Пояснение кода:
HAL_GPIO_TogglePin(): Это функция из библиотеки STM32Cube HAL (Hardware Abstraction Layer). Она изменяет состояние указанного вывода GPIO с высокого на низкий или с низкого на высокий.Onboard_LED_GPIO_Port: Это макрос, автоматически сгенерированный CubeMX, представляющий порт GPIO (например,GPIOCесли ваш светодиод находится на PC13).Onboard_LED_Pin: Это макрос, автоматически сгенерированный CubeMX, представляющий конкретный номер контакта (например,GPIO_PIN_13если ваш светодиод находится на PC13).
HAL_Delay(500): Эта функция HAL создает блокирующую задержку на указанное количество миллисекунд. Здесь она приостанавливает выполнение на 500 мс (полсекунды).
Часть 4: Сборка, прошивка и проверка
Наконец, давайте скомпилируем ваш код, загрузим его на плату и посмотрим, как мигает светодиод!
Подключите плату:
Подключите один конец USB-кабеля к соответствующему USB-порту на плате разработчика STM32H7 (обычно обозначенному как «USB ST-LINK» или «USB USER»).
Вставьте другой конец в USB-порт вашего компьютера. Ваш компьютер должен распознать плату.
Соберите проект:
Перейдите в
Project > Build Projectили щелкните значок молотка на панели инструментов.Проверьте окно «Консоль» на наличие ошибок или предупреждений. При успешной сборке отобразится сообщение «Сборка завершена» и не будет указано никаких ошибок.
Загрузите программу на плату:
Перейдите
Run > Debugили щелкните значок отладки (зеленый жук).STM32CubeIDE автоматически настроит параметры отладчика (ST-LINK).
Нажмите
OKилиSwitch, если появится запрос на переход в режим отладки.Программа будет скомпилирована (если это еще не сделано), загружена в флэш-память вашей платы STM32H7, и отладчик запустится.
Наблюдайте за миганием светодиода:
После завершения мигания и запуска программы вы должны увидеть, как светодиод пользователя на вашей плате разработчика STM32H7 начинает мигать с интервалом в полсекунды.
Выход из отладки:
Чтобы остановить отладчик и запустить программу в свободном режиме, нажмите красную квадратную кнопку «Terminate» (Завершить) в режиме отладки, а затем нажмите кнопку «Run» (Запустить) (зеленая кнопка с изображением воспроизведения). В качестве альтернативы можно просто отсоединить USB-кабель и подключить его заново (программа уже находится во флэш-памяти).
Чтобы вернуться в перспективу C/C++, нажмите
Window > Perspective > Open Perspective > C/C++.
Часть 5: Заключение и дальнейшие шаги
Поздравляем! Вы успешно завершили свой первый проект по встроенному программированию STM32H7. Вы научились:
Создавать новый проект в STM32CubeIDE.
Настраивать выводы GPIO с помощью STM32CubeMX.
Писать базовый код на языке C с использованием функций HAL.
Компилировать, записывать в флеш-память и запускать программу на плате STM32H7.
Следующие шаги:
Экспериментируйте с задержкой: изменяйте
HAL_Delay()значение, чтобы светодиод мигал быстрее или медленнее.Управление несколькими светодиодами: настройте другой вывод GPIO как выход и заставьте несколько светодиодов мигать одновременно или последовательно.
Ввод с помощью кнопки: настройте вывод GPIO в качестве входа для считывания состояния пользовательской кнопки и управления светодиодом в зависимости от нажатий кнопки.
Изучите другие периферийные устройства: рассмотрите возможность использования UART для последовательной связи, таймеров для точного измерения времени или АЦП для аналоговых показаний.
Программирование STM32H7 использует обширные библиотеки и промежуточное программное обеспечение, предоставляемые STMicroelectronics. Эти ресурсы упрощают процесс добавления сложных функций в ваши приложения. Благодаря надежной поддержке сообщества и подробной документации начало работы с программированием STM32H7 проходит гладко и без проблем.
Необходимые инструменты и программное обеспечение для разработки на базе STM32H7
Для начала разработки на базе STM32H7 требуется набор необходимых инструментов и программного обеспечения. Эти ресурсы обеспечивают эффективный рабочий процесс и комплексное управление проектами. Выбор правильных инструментов значительно упрощает процесс разработки.
Первый шаг заключается в выборе совместимой интегрированной среды разработки (IDE). STM32CubeIDE идеально подходит для программирования STM32H7. Она объединяет в себе несколько функций, предлагая возможности кодирования, компиляции и отладки в одной платформе. Такое удобство не имеет себе равных для разработчиков.
В дополнение к STM32CubeIDE рассмотрите возможность использования STM32CubeMX. Этот графический инструмент упрощает настройку микроконтроллера. Он позволяет легко управлять периферийными устройствами и конфигурациями выводов, оптимизируя этап настройки вашего проекта.
Вот список основных инструментов для разработки STM32H7:
- STM32CubeIDE: комплексная среда разработки.
- STM32CubeMX: упрощает настройку периферийных устройств.
- Инструменты отладчика/программиста: ST-LINK/V2 для отладки на кристалле.
- Библиотеки и промежуточное программное обеспечение: расширяют функциональность приложений.
ST-LINK/V2 имеет решающее значение для отладки и программирования в цепи. Он позволяет разработчикам легко подключать свои платы разработки STM32H7 к компьютерам, обеспечивая подробную информацию и контроль во время устранения неполадок. Использование этих инструментов гарантирует, что разработка STM32H7 будет эффективной и приятной.
Заключение
Серия STM32H7 предлагает беспрецедентную производительность и универсальность. Это надежный выбор для проектов, требующих высокой вычислительной мощности и точного управления. Благодаря множеству функций, она подходит для различных отраслей и приложений.
Перед выбором STM32H7 оцените конкретные требования вашего проекта. Учтите такие факторы, как скорость обработки, возможности подключения и бюджет. Если высокая производительность и расширенные функции имеют первостепенное значение, STM32H7, скорее всего, хорошо подойдет для удовлетворения ваших потребностей.




