Stm32 ide

St visual programmer stm32: инструмент для разработки микроконтроллеров

Загрузка кода из STVD в плату разработки STM8S с помощью ST-Link V2

Подключите ST-Link V2 к плате разработки, как показано ниже.

Подключения довольно просты, и, что самое приятное, вам не нужны внешние компоненты. Моя аппаратная установка для программирования показана ниже, я только что использовал соединительные провода для подключения

Однако обратите внимание, что распиновка вашего ST-Link может отличаться от моей, убедитесь, что вы соблюдаете распиновку на устройстве, прежде чем выполнять подключения

Выполните подключение и подключите устройство к компьютеру, установка драйвера должна начаться автоматически. Вы можете использовать диспетчер устройств, чтобы убедиться, что ваш компьютер правильно обнаружил ST-LINK V2. Вы также заметите, что индикатор проверки на плате мигает, если это первый раз, когда плата включается. Как только мы успешно скомпилируем код на STVD, мы получим файл расширения «S19» в каталоге отладки папки проекта. Мой файл S19 показан ниже.

Этот S19 похож на файл Hex, который следует загрузить в контроллер. Чтобы загрузить программу, откройте ST Visual Programmer (STVP), который должен быть установлен вместе с STVD. Затем в окне конфигурации выберите, как показано на изображении ниже, и нажмите OK.

Затем нажмите File-> Open и перейдите к файлу S19, который мы показали ранее. Затем, чтобы прошить устройство, перейдите в Program -> Current Tab. Если перепрошивка прошла успешно, вы должны увидеть следующий результат.

По умолчанию, когда вы покупаете STM8S, у него будет мигающая программа, которая мигает тестовым светодиодом. Теперь, после загрузки этого пустого кода, светодиод больше не будет мигать.

Важно: я обнаружил, что мой ST-Link не сбрасывает плату автоматически после программирования. Мне пришлось отключить и снова подключить его, чтобы проверить вывод моей программы

Я не уверен, что это проблема для всех, дайте мне знать в разделе комментариев. Также посмотрите видео внизу, в котором объясняется решение этой проблемы.

На этом давайте закончим этот урок, мы изучили основы оборудования, настроили среду разработки и узнали, как компилировать и загружать код. Теперь мы готовы к прогрессу и будем использовать это во всех наших будущих уроках. Если у вас есть вопросы, напишите их на нашем форуме и следите за новостями !!

Краткая заметка о плате разработки STM32F103C8T6

На следующем рисунке показана лицевая и задняя стороны типичной платы Blue Pill STM32. Как видите, макет платы очень прост, и некоторые могут даже спутать ее с Arduino Nano.

Важной особенностью этих плат является то, что они очень дешевы, дешевле, чем клонированная версия Arduino UNO. Приобрести данную плату можно примерно за 2,5 доллара на Aliexpress. Очевидно это клонированная версия

На рынке доступно много клонированных версий этой платы.

Особенности платы

  • Она содержит основной микроконтроллер — STM32F103C8T6.
  • Кнопка сброса — для сброса микроконтроллера.
  • Порт microUSB — для последовательной связи и питания.
  • Перемычки выбора BOOT — перемычки BOOT0 и BOOT1 для выбора загрузочной памяти.
  • Два светодиода — пользовательский светодиод и индикатор питания.
  • Кварц на 8 МГц.
  • Кварц на 32,768 кГц — часы RTC.
  • SWD Interface — интерфейс для программирования и отладки с использованием ST-Link.
  • Стабилизатор питания 3,3 В — преобразует 5 В в 3,3 В для питания микроконтроллера.

На каждой длинной стороне платы есть контакты для подключения различных аналоговых и цифровых устройств ввода-вывода и питания. На следующем рисунке показана конфигурация контактов платы, а также различные функции, поддерживаемые каждым контактом.

Как видно из приведенного выше рисунка, каждый вывод микроконтроллера STM32F103C8T6 может иметь несколько функций (но необходимо выбрать только одну). Также обратите внимание, что некоторые контакты ввода / вывода допускают 5 В, это означает, что вы можете подключить к этим контактам 5 В совместимый ввод / вывод

Пример мерцания CubeMX

Перейдите к подпапке template_F3. Скопируйте содержимое этой папки в вашу папку blink. Если папка .vscode не видна, убедитесь, что у вас установлен флажок «Показывать скрытые файлы и папки» в параметрах «Папка» и «Поиск».

Откройте CubeMX и создайте новый проект. Найдите свой микроконтроллер и дважды щелкните, чтобы создать проект. Сохраните проект в STM32_Projects/blink/ как blink.ioc.

Появится графический интерфейс для редактирования периферийных устройств. Проверьте схемы вашей платы, чтобы найти контакты для светодиодов. Для платы NUCLEO-F303K8 светодиод находится на контакте PB3. Нажмите на контакт светодиода, чтобы изменить его функцию на GPIO_Output.

Сохранить и нажать «Создать исходный код» в меню «Проект»/«Создать код».

Появится диалоговое окно настроек проекта. Внесите следующие изменения.

  • Установите имя проекта таким же, как имя папки (мигание)
  • Установите папку рабочей области (STM32_Projects)
  • Убедитесь, что для параметра Toolchain IDE установлено значение Makefile.
  • На вкладке «Генератор кода» убедитесь, что флажок «Удалить ранее созданные файлы, если они не созданы повторно» не установлен.

Нажмите «ОК» и разрешите перезапись. Код инициализации теперь генерируется для проекта. При первом создании кода Cube удалит папку .vscode. Скопируйте и вставьте файлы json из шаблона, а также файл svd.

Visual Studio Code extensions

Visual Studio Code is lightweight text editor with capability to enlarge it using extensions.

List of useful extensions for STM32 development using CMake:

  • : Syntax highlighting and other core features for C/C++ development
  • : CMake core tools, build system generator tool
  • : CMake color highlighting
  • : Cortex-M debugging extension, mandatory for STM32 debug from VSCode
  • : ARM Assembly syntax highlighter
  • : GCC Linker script syntax highlighter

You can install them by copying below commands in VSCode’s internal terminal window.

Alternative way is to use Extension search GUI and manually install from there.

Что такое Stm32 Cube Programmer?

Stm32 Cube Programmer поддерживает различные способы подключения к устройствам STM32, включая USB, UART и CAN. Он также предоставляет возможность работать с разными форматами файлов прошивок, включая bin, hex и elf.

Одной из особенностей Stm32 Cube Programmer является его интеграция с STM32 Cube IDE и STM32CubeMX, что позволяет разработчикам удобно работать с разными инструментами для разработки и оптимизации проектов на базе микроконтроллеров STM32.

Stm32 Cube Programmer также предоставляет различные функции отладки устройств, включая мониторинг работы программы, отображение значений переменных в реальном времени, а также возможность запуска и остановки выполнения кода. Он поддерживает обновление прошивки в микроконтроллерах STM32 в режиме реального времени, что позволяет разработчикам легко вносить изменения и исправления в работающие устройства.

В целом, Stm32 Cube Programmer предоставляет мощный набор инструментов для разработки, оптимизации и отладки проектов, основанных на микроконтроллерах STM32, и является важным компонентом в экосистеме STM32, которая помогает разработчикам ускорить процесс разработки и улучшить производительность и качество своих устройств.

ST Visual Programmer для программирования ST7, STM8, STM8T и STM32

ST Visual Programmer (STVP) — это полнофункциональный программный интерфейс для программирования микроконтроллеров ST Flash.

Кроме того, разработчики могут воспользоваться преимуществами Free Programming Toolkit с исходными кодами C/C++ для всех функций, необходимых для разработки пользовательского интерфейса программирования на основе STVP для любого поддерживаемого программного обеспечения ST. Он содержит исходный код для всех функций, которые позволяют программному приложению получать доступ к низкоуровневым DLL STVP и программировать микроконтроллеры, используя любое поддерживаемое аппаратное обеспечение и метод программирования (сокеты, внутрисхемное программирование или программирование на месте).

  • Бесплатное программное обеспечение
  • Поддерживает форматы Motorola S19 и Intel HEX
  • Загрузка, редактирование и сохранение исполняемых файлов и/или файлов данных, созданных компиляторами Assembler/Linker или C
  • Стереть, запрограммировать, просмотреть и проверить содержимое флэш-памяти устройства
  • Режим проекта для автоматизации всех задач настройки и программирования
  • Programming Toolkit с исходными файлами C/C++ для создания приложения для программирования на основе ST Visual Programmer (STVP)
  • STVP поддерживает программирование микроконтроллеров с помощью полного набора средств разработки оборудования и специализированных программаторов, включая:
ПРОГРАММАТОРЫ УСТРОЙСТВ
描述 版本 大小
Набор инструментов для программирования STVP: исходные файлы C++ для создания интерфейса программирования ПК 3,0 294 КБ

ARM Keil

Языки: ассемблер, C, C++ и др.

Уровень мастерства: более продвинутый.

ARM Keil включает в себя всю среду инструментов разработки для создания приложений для встраиваемых систем, специально предназначенных для устройств на базе ARM. Программный пакет включает ведущие компиляторы C/C++, имитационные модели, отладчики, компоновщики, ассемблеры и библиотеки промежуточного программного обеспечения. Адаптеры отладки ULINK очень полезны, позволяя разработчикам программировать, отлаживать и анализировать приложения встраиваемых систем. Некоторые заслуживающие внимания адаптеры включают ULINKproadapter, который обеспечивает потоковую передачу трассировки инструкций, ULINKplus, который обеспечивает измерение мощности и автоматизацию тестирования, и ULINK2, который помогает отлаживать Arm и устаревшие архитектуры.

Assembly stepping

You can step with assembly instructions

Open Command Palette and type and pick disassembly, then type function to disassemble.
It is possible to later step by step assembly instructions too.

Many other features are available.

Conclusion

This is all for the tutorial.
We showed how to create first project with STM32CubeIDE or STM32CubeMX to have its structure, sources and graphical configuration, later transferred to VSCode, CMake and Cortex-debug.

Full project from this tutorial is available in folder

Automatic STM32CubeIDE script

Part of this repository is also experimetal script, target being taking location of your STM32CubeIDE generated project as an input, finding and files and generate appropriate file, to allow users to use VSCode environment, fully automatically.

Основы

Перед тем, как приступить непосредственно к программированию, необходимо, как минимум, приобрести набор разработчика и установить на компьютер целый ряд программных средств, необходимых для написания кода, его загрузки в МК и последующей отладки. Таких средств на текущий момент существует огромное количество, поэтому перед новичком стоит непростая задача выбора. Мы предлагаем начать с организации профессионального процесса разработки. При этом правильный выбор средств и технологии разработки имеет решающее значение.

Возможно, кто-то скажет, что ему для работы достаточно бесплатного кросс-компилятора GCC для ARM. Но такой подход представляется нам неоптимальным. Профессиональным же подходом, на наш взгляд, будет освоение многочисленных сторонних наработок, умение пользоваться стандартными библиотеками и т. д. Установка какой-либо популярной среды проектирования не решает проблему подбора средств разработки, поскольку экосистема проектирования кода для ARM значительно сложнее, чем просто среда разработки (IDE), и для эффективной работы знать ее необходимо.

Programming Manual

Programming Manual не является документом первой необходимости в самом начале знакомства с STM-ми, однако является очень важным при углубленном изучении этих микроконтроллеров. Он содержит информацию о процессорном ядре, системе команд и периферии ядра. Причем это не та же самая периферия, которая описана в Reference manual-е.  В нее входят:

  • System timer — системный таймер
  • Nested vectored interrupt controller — контроллер приоритетных прерываний
  • System control block
  • Memory protection unit

Как только мы начнем знакомится с прерываниями в STM32, нам понадобится раздел 4.3 Nested vectored interrupt controller (NVIC). Ну и системный таймер является очень прикольной вещью, который будет полезен в каких-нибудь RTOS или для создания программных таймеров.

Starting a project with STM32CubeMX

When starting STM32CubeMX we can select «Access to MCU Selector»:

This will bring us to the MCU selector:

Having selected the appropriate MCU or development board, we finally end up at the core of STM32CubeMX where we can configure the MCU and it’s peripherals. In our case, this being a simple «blink» project, we enable PC13 as a GPIO output (labelled LED) and USART1 for serial communications. PC13 is also configured as «Open Drain» (not overly important in this case as pulling low will work too).

When done configuring the MCU and it’s peripherals, move to the «Project Manager» tab and make a few changes:

The important ones are the Project Name, Project Location and Toolchain/IDE. When done click «Generate Code».

Notice, that it is always possible to go back and make changes in STM32CubeMX. Just start it again, load the project, make the changes and generate code again.

Дополнительные библиотеки

В качестве дополнительных библиотек используются различные пакеты, например стек TCP-IP lwIP или ОС реального времени FreeRTOS. Часть из них уже предустановлена в рабочем пространстве, а недостающие можно загрузить как утилитой STM32CubeUpdater, дистрибутив которой поставляется в составе рабочей области, так и средствами IDE. Не исключено, что в редких случаях, возможно, придется устанавливать сторонние средства вручную.

Библиотеки являются необходимым инструментом для быстрой и эффективной работы. Кроме того, они позволяют выполнять работу максимально стандартным образом и, следовательно, дают возможность при необходимости получить помощь огромного сообщества разработчиков. Мы рекомендуем (особенно в начале) работать с аппаратными ресурсами микроконтроллеров STM32 через специальную библиотеку с названием HAL (Hardware Abstraction Level). Описание библиотеки (для серии F1) приведено в .

Программа Blink для платы Blue Pill STM32F103C8T6

Убедитесь, что вы внесли необходимые изменения в IDE Arduino, как указано в предыдущем разделе (выбор правильной платы и т. д.). Как только это будет сделано, установите соединение между программатором FTDI (т. е. с USB Serial Converter) и платой STM32, как указано выше.

Теперь, прежде чем подключать FTDI к ПК, убедитесь, что плата  находится в «режиме программирования», т.е. переключите контакт BOOT0 в HIGH. После этого подключите FTDI к ПК или ноутбуку. COM-порт будет автоматически назначен программатору и установите этот же COM-порт в Arduino IDE.

Наберите программу Blink следующим образом. Это похоже на скетч Arduino Blink, но вместо LED_BUILTIN использован PC13, так как светодиод подключен к этому выводу микроконтроллера.

void setup() {
    pinMode(PC13, OUTPUT);
}
void loop() {
  digitalWrite(PC13, HIGH);
  delay(1000);
  digitalWrite(PC13, LOW);
  delay(1000);           
}

После этого вы можете нажать «Загрузить», и среда IDE начнет компилировать код. Это займет некоторое время для компиляции.

Как только компиляция будет завершена, она автоматически вызовет инструмент STM32CubeProgrammer. Если все пойдет хорошо, IDE успешно запрограммирует плату STM32.

Программатор автоматически сбросит настройки микроконтроллера, и вы увидите, что светодиод мигает. Не забудьте переставить контакты BOOT0 обратно в положение LOW, чтобы при следующем включении питания на платформе запускалась ранее загруженная программа.

Вывод

Это было длинное руководство по началу работы с STM32 Blue Pill Board, т.е. STM32F103C8T6. Мы обсудили некоторые важные функции платы, основные сведения о микроконтроллере, известные проблемы платы и способы их устранения, а так же показали настройку Arduino IDE, загрузку необходимых инструментов, написали и загрузили нашу первую программу.

STM8S103F3P6 Разработка

Плата состоит только из минимума компонентов, необходимых для начала разработки. Это макетная плата и подходит для компактных приложений. Внутренняя принципиальная схема макетной платы показана ниже.

Присмотревшись, вы заметите, что помимо контроллера STM8S103F3p6, у нас есть кнопка сброса для сброса контроллера. Светодиод питания и тестовый светодиод подключены к PB5 (порт B, контакт 5) и регулятору напряжения AMS1117, который преобразует 5 В из порта USB в 3,3 В для контроллера. При необходимости контроллер также может быть настроен на работу от 5 В. Различные части контроллера отмечены ниже. У нас также есть 4 вывода программатора, а именно 3.3V, GND, SWIM и NRST, которые можно использовать для простого программирования и отладки нашего микроконтроллера.

Создание и загрузка программы в плату STM32 с помощью Keil uVision и ST-Link

Выполните следующую последовательность шагов

Шаг 1. Первым делом установите все необходимые драйверы для программатора ST-LINK V2, программы STM32CubeMX и Keil uVision, а также необходимые пакеты для платы STM32F103C8.

Шаг 2. Запустите STM32CubeMX.

Шаг 3. В нем нажмите на New Project (новый проект).

Шаг 4. После этого выполните поиск и выберите микроконтроллер STM32F103C8.

Шаг 5. На экране появится распиновка платы STM32F103C8, на которой вы можете задать необходимую конфигурацию (режимы работы) контактов. Также вы можете выбрать контакты для подключения периферийных устройств.

Шаг 6. Также вы можете нажать на один из контактов в представленной распиновке, после чего появится список контактов, в котором вы можете задать их конфигурацию.

Шаг 7. Для нашего проекта мы выбрали для контакта PA1 режим работы GPIO INPUT (на ввод данных), для контакта PC13 – GPIO OUTPUT, для отладки (debug) SYS – SERIAL WIRE (к этим контактам мы будем подключать контакты ST-LINK SWCLK & SWDIO. Выбранные и сконфигурированные (selected & configured) контакты окрашиваются в зеленый цвет как показано на следующем рисунке.

Шаг 8. Далее под вкладкой конфигурации (Configuration tab) выберите GPIO чтобы установить конфигурацию (режимы работы) для контактов, которые мы выбрали на предыдущем шаге.

Шаг 9. Затем в окне настройки конфигурации контактов (pin configuration box) мы можем настроить пользовательские метки для используемых нами контактов, то есть дать этим контактам осмысленные имена.

Шаг 10. После этого выберите пункт меню Project >> Generate Code.

Шаг 11. Появится диалоговое окно с настройками проекта. В этом окне вам необходимо ввести имя проекта и его местоположение, а также используемый инструментарий. Мы используем программу Keil, поэтому в качестве интегрированной среды разработки (IDE) выберите MDK-ARMv5.

Шаг 12. Далее под вкладкой генерации кода (Code Generator tab) выберите пункт «Copy only the necessary library files» и затем нажмите OK.

Шаг 13. Появится диалоговое окно генерации кода. Выберите Open Project чтобы автоматически открыть генерацию кода в Keil uvsion.

Шаг 14. Откроется инструмент Keil uVision с нашим автоматически сгенерированным кодом в STM32CubeMx и нашим введенным именем проекта с необходимыми подключенными библиотеками и кодами для контактов, работу которых мы настроили ранее.

Шаг 15. Теперь нам необходимо настроить логику работы программы. Например, включать светодиод (контакт PC13) при нажатии кнопки (контакт PA1) и выключать светодиод при отпускании кнопки. Поэтому выберите файл main.c чтобы включить в него необходимые фрагменты кода.

Шаг 16. Добавьте следующий фрагмент кода в цикл while(1).

Arduino

while (1)
{
if(HAL_GPIO_ReadPin(BUTN_GPIO_Port,BUTN_Pin)==0) //=> DETECTS Button is Pressed
{
HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,1); //To make output high when button pressesd
}

else
{
HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,0); //To make output Low when button de pressed
}
}

1
2
3
4
5
6
7
8
9
10
11
12

while(1)

{

if(HAL_GPIO_ReadPin(BUTN_GPIO_Port,BUTN_Pin)==)//=> DETECTS Button is Pressed

{

HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,1);//To make output high when button pressesd

}
 
else
{

HAL_GPIO_WritePin(LEDOUT_GPIO_Port,LEDOUT_Pin,);//To make output Low when button de pressed

}

}

На следующем рисунке выделено цветом куда нужно вставить наш код.

Шаг 17. После того, как вы завершите редактирование кода, нажмите иконку Options for Target и в открывшемся окне на вкладке отладки (debug tab) выберите ST-LINK Debugger.

Также нажмите на кнопку Settings (настройки) и на вкладке Flash Download выберите пункт Reset and Run, после чего нажмите ‘ok’.

Шаг 18. Затем нажмите на иконку Rebuild чтобы заново скомпилировать все наши файлы.

Шаг 19. После этого вы можете подключить программатор ST-LINK к компьютеру и нажать на иконку DOWNLOAD или клавишу F8 чтобы загрузить в плату STM32F103C8 код программы, который мы сначала автоматически сгенерировали, а потом вручную отредактировали.

Шаг 20. Вы должны заметить индикацию загрузки программы внизу окна программы keil uVision.

Для тестирования работы нашего проекта нажмите кнопку в собранной конструкции проекта, при этом светодиод должен загореться. При отпускании кнопки светодиод должен погаснуть.

Создание проекта

Теперь есть все необходимое, чтобы создать проект.

Чтобы создать проект на языке C, выберем меню File -> New -> C Project.

Можно создать проект на языке C++, но возникнет множество нюансов, которые усложнят разработку. О них я расскажу в другой статье.

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

Проект я назову example. Тип — пустой проект (Empty Project). Набор инструментов — Cross ARM GCC, что соответствует ранее установленному GCC ARM.

После нажатия Next будет предложено выбрать конфигурации проекта. Конфигурации позволяют по разному собирать проект, с разными настройками. В дальнейшем можно создать любое количество конфигураций. Но придется возиться с их настройками. Для простоты оставим одну конфигурацию Release.

Далее будет предложено уточнить набор инструментов и указать путь к ним. По умолчанию выбран набор GCC ARM: «GNU Tools for ARM Embedded Processors (arm-none-eabi-gcc)«. В качестве пути нужно указать путь к папке GNU ARM.

После нажатия Finish проект будет создан. Его иерархическая структура отображается во вкладке Project Explorer. В этой же вкладе может отображаться множество проектов.

Editing Project in VSCode

When starting VSCode, select «Open Folder» and open the folder generated by STM32CubeMX in the previous section:

Before doing anything else, let us check if the system build by running «make»:

The result, should be a binary image (.bin) file used for flashing the device.

Now that we know the project will build, let us make a few changes to the source. First of all, following the approach described here we create a «DBG» macro and ensure that printf prints on the serial console.

In ‘main.h’:

/* USER CODE BEGIN Private defines */

#ifdef DEBUG
#define DBG(...)    printf(__VA_ARGS__);\
                    printf("\n");
#else
#define DBG(...)
#endif

/* USER CODE END Private defines */

In ‘main.c’ we first include «stdio.h»:

/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

Then we create the redirection of printf to USART1:

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */

// Send printf to uart1
int _write(int fd, char* ptr, int len) {
  HAL_StatusTypeDef hstatus;

  if (fd == 1 || fd == 2) {
    hstatus = HAL_UART_Transmit(&huart1, (uint8_t *) ptr, len, HAL_MAX_DELAY);
    if (hstatus == HAL_OK)
      return len;
    else
      return -1;
  }
  return -1;
}

/* USER CODE END 0 */

We are now in business and can modify our main loop as we please:

/* Infinite loop */
  /* USER CODE BEGIN WHILE */

  uint32_t now = 0, last_blink = 0, last_print = 0;

  while (1)
  {

    now = HAL_GetTick();

    if (now - last_blink >= 500) { // Every half second or 500 ms

      HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);

      last_blink = now;

    }

    if (now - last_print >= 1000) {
      
      DBG("Tick %lu", now / 1000);

      last_print = now;

    }

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

Again we run make to ensure the project still build.

Finally let us try to run a debugging session. First click Run and Debug:

The first step is to let cortex-debug know where to find our debugger. In the case of Debian, create the following in .vscode/settings.json:

{
    "cortex-debug.gdbPath": "gdb-multiarch", 
    "makefile.extensionOutputFolder": "./.vscode"
}

Since we have not yet configured debugging click Create a launch.json. Fill in the following:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "cortex-debug",
            "request": "launch",
            "name": "Debug (OpenOCD)",
            "servertype": "openocd",
            "cwd": "${workspaceFolder}",
            "runToEntryPoint": "main",
            "executable": "./build/blink.elf",
            "device": "STM32F411CEU6",
            "configFiles": [
                "interface/stlink-dap.cfg",
                "target/stm32f4x.cfg"
            ], 
            "showDevDebugOutput": "none",
        }
    ]
}

We can now fire up a debugging session:

That is about it — we can now develop and debug applications on the STM32 using free tools.

Пример использования St визуального программиста stm32

St визуальный программист stm32 представляет собой удобный инструмент, который позволяет разработчикам программировать микроконтроллеры STM32 без необходимости написания кода. В этой статье рассмотрим пример использования данного инструмента.

Допустим, вы хотите разработать устройство, которое будет считывать данные с датчика света и выводить их на LCD-дисплей. С помощью St визуального программиста stm32 вы сможете легко реализовать такую функциональность без необходимости в изучении языка программирования.

  1. В первую очередь, вам потребуется подключить микроконтроллер STM32 к компьютеру и открыть St визуальный программист stm32.
  2. Далее, необходимо создать новый проект и выбрать нужный микроконтроллер из списка поддерживаемых устройств.
  3. После создания проекта, откроется визуальный интерфейс программиста, в котором вы сможете добавлять блоки кода, соединять их и задавать необходимые параметры.
  4. В качестве первого шага, добавьте блок для чтения данных с датчика света. Введите необходимые параметры, такие как пин подключения и тип датчика. Программист автоматически сгенерирует соответствующий код.
  5. Далее, добавьте блок для вывода данных на LCD-дисплей. Укажите необходимый пин подключения и настройте отображение данных на дисплее.
  6. Теперь, соедините блоки кода в правильной последовательности, чтобы данные считывались с датчика и выводились на дисплей.
  7. После завершения разработки, сохраните проект и загрузите его на микроконтроллер STM32.
  8. Теперь вы можете подключить датчик света и LCD-дисплей к микроконтроллеру и запустить разработанное устройство.

Приведенный пример демонстрирует, как легко и быстро можно разрабатывать функциональность для микроконтроллеров STM32 с помощью St визуального программиста stm32. Этот инструмент позволяет сэкономить время и усилия, а также снизить требования к навыкам программирования.

Удобный инструмент для разработки

St визуальный программист stm32 представляет собой удобный инструмент для разработки программного обеспечения для микроконтроллеров STM32. Он позволяет разработчикам создавать код без необходимости написания его вручную, что значительно ускоряет процесс разработки и позволяет сосредоточиться на решении задачи.

Основным преимуществом St визуального программиста stm32 является его интуитивно понятный интерфейс. Разработчики могут проектировать свои программы с помощью графического интерфейса, не беспокоясь о непосредственном программировании. Это особенно полезно для новичков, которые только начинают знакомиться с технологией микроконтроллеров.

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

Кроме того, St визуальный программист stm32 обладает мощным отладчиком, который позволяет тестировать и отлаживать программы непосредственно на микроконтроллере. Это позволяет разработчикам быстро обнаруживать и исправлять ошибки, что уменьшает время, затрачиваемое на отладку программы.

Еще одним важным преимуществом St визуального программиста stm32 является его возможность интеграции с другими инструментами разработки, такими как среды программирования, системы контроля версий и инструменты автоматической сборки. Это значительно упрощает процесс разработки и улучшает координацию работы команды разработчиков.

Преимущества St визуального программиста stm32:
Преимущество
Описание

Интуитивный интерфейс
Удобный и понятный графический интерфейс, который позволяет разработчикам проектировать программы без особых усилий.

Библиотека готовых блоков
Обширная библиотека готовых блоков, которые могут быть собраны вместе для создания сложных функций и задач.

Мощный отладчик
Отладчик, позволяющий тестировать и отлаживать программы непосредственно на микроконтроллере.

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

Становится очевидным, что St визуальный программист stm32 является удобным инструментом для разработчиков, позволяющим ускорить и упростить процесс разработки программного обеспечения для микроконтроллеров STM32.

Как установить Stm32 Cube Programmer

Шаг 2: В поисковой строке раздела загрузки введите «Stm32 Cube Programmer» и нажмите «Поиск».

Шаг 3: Найдите в списке результатов загрузки «Stm32 Cube Programmer» и нажмите на ссылку для перехода к странице загрузки.

Шаг 4: На странице загрузки выберите нужную версию Stm32 Cube Programmer для вашей операционной системы (например, Windows или Linux).

Шаг 5: Нажмите на кнопку «Загрузить», чтобы начать загрузку программы.

Шаг 6: После завершения загрузки найдите загруженный файл на вашем компьютере (обычно это файл с расширением .exe для Windows и .tar.gz для Linux) и запустите его.

Шаг 7: Следуйте инструкциям установщика, чтобы установить Stm32 Cube Programmer на ваш компьютер.

Теперь, когда Stm32 Cube Programmer успешно установлен на вашем компьютере, вы можете начать использовать его для прошивки и обновления микроконтроллеров STM32.

STM32CubeProgrammer#

Download STM32CubeProgrammer
STM32CubeProgrammer User Manual

STM32CubeProgrammer (previous name was ST-Link Utility) provides an easy-to-use and efficient environment for reading, writing and verifying device memory through both the debug interface (JTAG and SWD) and the bootloader interface (UART, USB DFU, I2C, SPI, and CAN). STM32CubeProgrammer offers a wide range of features to program STM32 internal memories (such as Flash, RAM, and OTP) as well as external memories.

STM32 Programmer

Target connection

On the original development boards, please select ST-LINK interface, and then select either SWD or JTAG port.

If the custom board has a USB port with Device Firmware Update mode, it can be connected on the USB interface. Before pressing Connect on the software, find on the board to press and hold the Boot button (Boot0 or Boot1) and press Reset button (NRST) to make device run into DFU mode.

Different connections

Erase and Program

Once connected to a target, the memory sectors are displayed in the right-hand panel showing the start address and the size of each sector. To erase one or more sectors, select them in the first column and then click on the Erase selected sectors button.

To download firmware to the target chip, select the Erasing & Programming tab. Click on the browse button and select the file to be programmed. The file format supported are binary files (), ELF files (, , ), Intel hex files () and Motorola S-record files ().

In case of programming a binary file, the address must be set.

Other features

Other advanced features will be covered in other posts. Here is the list of those features:

  • Option Bytes
  • CPU Instruction debug
  • Serial Wire View
  • Fault Analyzer
  • External Flash programming

Program a binary file

Как использовать выводы BOOT STM32F103C8T6?

Как упоминалось ранее, контакты BOOT0 и BOOT1 микроконтроллера используются для выбора памяти, с которой он загружается. На следующем рисунке показаны три различных варианта загрузочных пространств на основе этих контактов:

Когда контакты BOOT0 и BOOT1 имеют НИЗКИЙ уровень, тогда внутренняя флэш-память выступает в качестве основного загрузочного пространства, а когда BOOT0 — ВЫСОКИЙ, а BOOT1 — низкий, системная память выступает в качестве основного загрузочного пространства. Эти два варианта важны для нас.

Чтобы загрузить код во флэш-память микроконтроллера, вы должны выбрать системную память в качестве основного загрузочного пространства. Причина этого заключается в том, что системная память содержит встроенный загрузчик, который программируется во время  производства.

Загрузив в системную память, т. е. в bootloader ROM, вы можете перепрограммировать флэш-память в своем приложении, используя последовательный интерфейс USART1.

Как только программа будет загружена во флэш-память, вы можете переключить BOOT0 на LOW, чтобы после следующего сброса или включения питания микроконтроллера программа загрузилась из флэш-памяти.

Как вы уже заметили, в обоих случаях, т.е. при выборе флэш-памяти и выборе системной памяти в качестве загрузочных пространств, вывод BOOT1 имеет НИЗКИЙ. Только BOOT0 переключается между LOW (флэш-память) и HIGH (системная память).

Для удобства, давайте назовем эти варианты загрузки как режим программирования и рабочий режим. Для режима программирования вывод BOOT0 устанавливается ВЫСОКИМ, а для режима работы вывод BOOT0 — НИЗКИМ (по умолчанию). В обоих режимах контакт BOOT1 остается НИЗКИМ.

Понравилась статья? Поделиться с друзьями:
Опытный компьютерщик
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: