Программы для программирования микроконтроллеров stm32
Обновлено: 21.11.2024
Добро пожаловать в первое руководство из серии руководств. Это руководство предназначено для начинающих (любителей, студентов), которые хотят начать работу с микроконтроллерами STM32, но не знают, как или где начать работу.
В этом руководстве представлен обзор доступного аппаратного и программного обеспечения для работы с микроконтроллерами STM32. Кроме того, он кратко познакомит вас с семейством микроконтроллеров STM32.
Все руководства, кроме этого, предполагают, что вы будете использовать базовый проект STM32. Чтобы следовать следующим руководствам, вам потребуется базовое понимание языка программирования C. Предыдущий опыт работы со встроенной платформой не требуется.
Введение в STM32
STM32 не относится к одному конкретному микроконтроллеру. Это название STMicroelectronics дала своему семейству микроконтроллеров на базе ARM Cortex-M. Само семейство STM32 можно разделить на несколько групп, которые, в свою очередь, можно разделить на серии.
В настоящее время семейство STM32 состоит из пятнадцати серий. Эти серии сгруппированы в четыре разные группы: High Performance, Mainstream, Ultra Low Power и Wireless. В следующем списке кратко описаны все серии:
Оборудование
Для начала вам понадобится как минимум одна плата для разработки. Без платы разработки вы не сможете правильно запускать или отлаживать свой код. Если у вас уже есть макетная плата, вы можете пропустить эту главу.
Микроконтроллеры
Семейство STM32 состоит из множества различных микроконтроллеров. Новичку сложно выбрать что-то одно. К счастью, большинство вещей, которые вам нужно будет изучить в первую очередь, являются общими для всех микроконтроллеров семейства STM32. Это означает, что вы можете начать практически с любого микроконтроллера STM32.
Есть две серии, которые лучше подходят для начинающих, чем другие серии. Серия STM32F1 и серия STM32F4. А причина проста:
Обе серии существуют уже давно и по-прежнему популярны среди любителей. Это означает, что для устройств этой серии доступно много ресурсов. Кроме того, устройства серии STM32F1 не такие сложные, как большинство других компонентов.
Доски для разработки
Большинство макетных плат предназначены для работы с минимальным количеством компонентов. Они разработаны таким образом, чтобы быть как можно более дешевыми и никоим образом не ограничивать пользователя. Существуют также платы с дополнительными компонентами, такими как светодиоды, датчики и память.
Большинство выводов, если не все, микроконтроллера выведены через заголовки для легкого доступа. Также имеется как минимум один выделенный заголовок для подключения отладчика.
Разработочные платы производятся разными компаниями. STMicroelectronics предлагает три разных линейки макетных плат:
- Платы Nucleo
Эти платы очень похожи на платы Arduino. Они имеют только микроконтроллер и встроенный отладчик ST-Link. Доступны три форм-фактора. - Комплекты Discovery
Все эти платы содержат устройства ввода и вывода в дополнение к микроконтроллеру. Эти платы также поставляются со встроенным отладчиком ST-Link. - Оценочные платы
Эти платы очень обширны и содержат множество дополнительных устройств и интерфейсов в дополнение к микроконтроллеру.
Есть также много плат, которые можно купить на Ebay и AliExpress. Наиболее популярными из них являются Blue Pill и Black Pill. Последний является улучшенной версией первого.
Рекомендации
Как Nucleo, так и Discovery идеально подходят для начинающих. Они гарантированно работают правильно и включают встроенный отладчик. И все это по доступным ценам. Если у вас очень ограниченный бюджет, вы можете купить одну из китайских макетных плат. Для начинающих рекомендуются следующие доски:
- NUCLEO-F103RB
Эта плата оснащена устройством STM32F103RBT6 с 128 КБ флэш-памяти. - STM32F407G-DISC1
Эта плата оснащена устройством STM32F407VGT6 с 1024 КБ флэш-памяти. - Black Pill
Эта плата оснащена устройством STM32F103C8T6 с 64 КБ флэш-памяти. Не забудьте также купить клон ST-Link для отладки и прошивки.
Программное обеспечение
Если вы хотите начать работу с базовым проектом STM32, вам не нужно делать большой выбор программного обеспечения. Базовый проект STM32 предназначен для использования с GNU Arm Embedded Toolchain. Базу STM32 можно использовать с вашим любимым редактором кода. Рекомендуем редактору Visual Studio Code.
Другое программное обеспечение, обсуждаемое в этой главе, можно использовать, если вы не хотите использовать базовый проект STM32. Другое программное обеспечение обсуждается, чтобы дать вам лучший обзор всего доступного программного обеспечения для микроконтроллеров STM32.
IDE означает интегрированная среда разработки.Обычно это означает, что после установки среда IDE готова к использованию без каких-либо дополнительных действий. IDE устанавливают все необходимое программное обеспечение, такое как компиляторы и драйверы, сразу после их установки.
Некоторые IDE бесплатны, для других требуется покупка лицензии. Перечисленные здесь IDE потенциально интересны новичкам и любителям, поскольку они бесплатны. Полный обзор доступных IDE см. на веб-сайте ST.
-
- Бесплатно для серий STM32G0, STM32F0 и STM32L0 (Windows) - Бесплатно (Windows, Linux, macOS) - Бесплатно (Windows, Linux, macOS) - Бесплатно для некоммерческого использования (Windows, Linux, macOS) - Бесплатно (Windows, линукс, макос)
Платформы
Платформы предлагают, помимо IDE, собственный API для управления устройством. Подобные платформы обычно нацелены на прототипирование. Для микроконтроллеров STM32 доступны две платформы.
Первый — STM32duino. Эта платформа реализует хорошо известный API Arduino для микроконтроллеров STM32. Его можно использовать с Arduino IDE.
Второй — Arm Mbed. Эта платформа поддерживает не только микроконтроллеры STM32. Он поддерживает широкий спектр устройств от разных производителей. Mbed включает ОС, специально разработанную для приложений IoT. Он имеет как облачную IDE, так и загружаемый вариант.
Другое
ST предлагает CMSIS и HAL для каждой серии устройств. CMSIS содержит все определения регистров и периферийных устройств, необходимые для использования доступных периферийных устройств микроконтроллера. HAL — это библиотека более высокого уровня, обеспечивающая переносимость кода между различными сериями. Код CMSIS и HAL распространяется в так называемых пакетах STM32Cube.
Популярной альтернативой официальной CMSIS с открытым исходным кодом является libopencm3. Этот проект направлен на создание библиотеки прошивок с открытым исходным кодом для микроконтроллеров Arm Cortex-M. Поддерживаются не все серии STM32.
Это веб-сайт проекта на базе STM32. Узнайте больше о базовом проекте STM32 или ознакомьтесь с этим проектом на Github. Базовый проект STM32 никоим образом не связан с STMicroelectronics.
Этот веб-сайт размещен на страницах Github. Эта страница создана на века. Проверьте, какие лицензии применяются к этому веб-сайту и его содержимому. Ознакомьтесь с политикой конфиденциальности.
Эта книга основана на проектах и направлена на обучение программным инструментам программирования микроконтроллеров STM32. Автор Маджид Пакдел разработал проекты с использованием различных сред разработки программного обеспечения, включая Keil MDK, IAR Embedded Workbench, Arduino IDE и MATLAB. Читатели должны иметь возможность использовать проекты как есть или модифицировать их в соответствии со своими потребностями. Эта книга написана для студентов, опытных инженеров и любителей. В книге используются отладочные платы микроконтроллеров STM32, включая STM32F103 и STM32F407. Читатели также должны легко использовать другие платы для разработки на базе ARM.
Обзор
Освойте программные инструменты микроконтроллера STM32
Эта книга основана на проектах и направлена на обучение программным инструментам программирования микроконтроллеров STM32. Автор Маджид Пакдел разработал проекты с использованием различных сред разработки программного обеспечения, включая Keil MDK, IAR Embedded Workbench, Arduino IDE и MATLAB. Читатели должны иметь возможность использовать проекты как есть или модифицировать их в соответствии со своими потребностями. Эта книга написана для студентов, опытных инженеров и любителей. В книге используются отладочные платы микроконтроллеров STM32, включая STM32F103 и STM32F407. Читатели также должны легко использовать другие платы для разработки на базе ARM.
Подробнее
Эта книга основана на проектах и направлена на обучение программным инструментам программирования микроконтроллеров STM32. Автор Маджид Пакдел разработал проекты с использованием различных сред разработки программного обеспечения, включая Keil MDK, IAR Embedded Workbench, Arduino IDE и MATLAB. Читатели должны иметь возможность использовать проекты как есть или модифицировать их в соответствии со своими потребностями. Эта книга написана для студентов, опытных инженеров и любителей. В книге используются отладочные платы микроконтроллеров STM32, включая STM32F103 и STM32F407. Читатели также должны легко использовать другие платы для разработки на базе ARM.
Новый STM32CubeProgrammer может программировать микроконтроллеры STM32 через порты SWD, JTAG или загрузчика
Программный инструмент STMicroelectronics STM32CubeProgrammer обеспечивает программирование устройств и обновление прошивки для микроконтроллеров STM32 в унифицированной, многоплатформенной и настраиваемой пользователем среде.Готовый к работе в операционных системах Windows®, Linux или MacOS®, STM32CubeProgrammer может программировать встроенную флэш-память/ОЗУ микроконтроллера STM32 или внешнюю память с использованием различных форматов файлов. Дополнительные возможности включают стирание всей памяти или сектора и программирование байтов опций микроконтроллера. Пользователи также могут создавать зашифрованные файлы для безопасного программирования (безопасная установка/обновление встроенного ПО) для аутентификации производства и защиты интеллектуальной собственности.
С помощью этого универсального инструмента пользователи могут программировать микроконтроллеры STM32 через порты отладки SWD (Single-Wire Debug) или JTAG устройства или порты загрузчика (такие как UART и USB). Следовательно, STM32CubeProgrammer объединяет отдельные возможности ST Visual Programmer, инструмента обновления прошивки устройства DFUse, Flash Loader и утилиты ST-Link в рамках экосистемы STM32Cube. ST расширит возможности STM32CubeProgrammer, добавив доступ к программированию через порты I²C и CAN микроконтроллера.
Кроме того, STM32CubeProgrammer предоставляет дополнительные возможности для настройки и настройки функций с использованием либо графического пользовательского интерфейса (GUI), либо интерфейса командной строки (CLI). Кроме того, этот универсальный инструмент можно использовать в автономном режиме или интегрировать и управлять им из пользовательского приложения. Программирование можно выполнять вручную или автоматически с помощью скриптов.
Возможности программного инструмента STM32CubeProgrammer
- Стирает, программирует, просматривает и проверяет содержимое флэш-памяти устройства.
- Поддерживает Motorola S19, Intel HEX, ELF и двоичные форматы.
- Поддерживает интерфейсы отладки и загрузчика:
- Отладочный зонд ST-LINK (JTAG/SWD)
- Интерфейсы UART, USB DFU, I²C, SPI и CAN загрузчика
Для получения дополнительной информации о программном инструменте STM32CubeProgrammer посетите веб-сайт ST на веб-странице STMicroelectronics STM32CubeProgrammer
STM32 является зарегистрированным и/или незарегистрированным товарным знаком компании STMicroelectronics International NV или ее дочерних компаний в ЕС и/или других странах. В частности, STM32 зарегистрирован в Бюро по патентам и товарным знакам США.
Прошло несколько месяцев с тех пор, как ST представила среду разработки STM32Java на основе решения MicroEJ. Вот краткий обзор этого успешного запуска, получившего в июне награду за инновации.
Среда разработки STM32Java предоставляет все необходимое для создания встроенных приложений Java, поддерживаемых микроконтроллерами серии STM32. Он включает в себя IDE с компилятором Java, несколько платформ Java, специально оптимизированных для микроконтроллеров STM32, стандартные библиотеки и сопутствующие инструменты. Это решение для простой и быстрой разработки привлекательных графических пользовательских интерфейсов (оно позволяет интегрировать методы проектирования, аналогичные тем, которые используются в смартфонах), опираясь на триаду модель-представление-контроллер.
Графические интерфейсы гибки и очень просты в обслуживании, поскольку основаны на технологии Java. Одним из основных преимуществ Java является ООП (объектно-ориентированное программирование), которое идеально подходит для модульности программного обеспечения и слабой связи между различными частями архитектуры программного обеспечения. Это также существенно упрощает обслуживание приложений. Концепции виртуализации, многозадачности, сборщика мусора и т. д. приносят огромные дополнительные преимущества: оптимизация использования ОЗУ, проверка исключений во время выполнения, поддержка разработки и отладки, переносимость и т. д. Все это приводит к повышению производительности разработки и экономии времени. Вообще говоря, мы считаем, что производительность и масштабируемость программного обеспечения значительно улучшились по сравнению с традиционными разработками на C/C++.
Кстати, STM32Java совместим с кодом C. Приложения могут легко смешивать C (например, устаревший код управления или команды) с Java с помощью облегченных библиотек, благодаря чему эти два мира взаимодействуют друг с другом. Также доступны некоторые другие полезные библиотеки виджетов, а также такие инструменты, как Storyboard Tool, Font Designer и инструмент моделирования для быстрой оценки поведения графического интерфейса на ПК с использованием того же кода Java, который был разработан для целевого оборудования.
Для запуска программ STM32Java на основе MicroEJ требуются функции, встроенные в специальный микроконтроллер STM32.
Читайте также: