Загрузка программы

Для загрузки программы на микроконтроллер нам понадобится программатор. Это специальное устройство, которое умеет копировать программу в память МК. Используем популярный модуль ST-Link V2 mini.

Подключение ST-Link к STM32 BluePill

У программатора имеется 10 контактов, но нам потребуется только 4 из них. На противоположном от USB-коннектора торце платы BluePill имеется четырёхконтактный разъём с надписями:

  • GND — земля;
  • CLK — SWCLK, синхроимпульс;
  • DIO — SWDIO, линия данных;
  • 3.3 — питание 3,3 Вольта.

У версии BlackPill они могут немного отличаться: G, CLK, IO, V3, но сути это не меняет.

Подключаем соответствующие контакты ST-Link и отладочной платы проводами, а затем втыкаем программатор в USB порт компьютера. Теперь Возвращаемся к среде STM32CubeIDE и жмём зеленую стрелку на панели иконок. Или выбираем в меню Run / Run.

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

Проверим вторую вкладку «Debugger». Здесь должен быть выбран наш программатор ST-Link и интерфейс SWD. Тоже можно ничего не менять.

Жмём ОК и дожидаемся завершения процедуры.

STMicroelectronics ST-LINK GDB server. Version 5.5.0
Copyright (c) 2019, STMicroelectronics. All rights reserved.
Starting server with the following options:
Persistent Mode : Disabled
Logging Level : 1
Listen Port Number : 61234
Status Refresh Delay : 15s
Verbose Mode : Disabled
SWD Debug : Enabled
InitWhile : Enabled
Waiting for debugger connection…
Debugger connected
-------------------------------------------------------------------
STM32CubeProgrammer v2.4.0
-------------------------------------------------------------------
ST-LINK SN : 54FF6A064887535326211187
ST-LINK FW : V2J36S7
Voltage : 3.23V
SWD freq : 4000 KHz
Connect mode: Under Reset
Reset mode : Hardware reset
Device ID : 0x410
Device name : STM32F101/F102/F103 Medium-density
Flash size : 64 KBytes
Device type : MCU
Device CPU : Cortex-M3
Memory Programming …
Opening and parsing file: ST-LINK_GDB_server_a02420.srec
File : ST-LINK_GDB_server_a02420.srec
Size : 4624 Bytes
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 4]
Download in Progress:
File download complete
Time elapsed during download operation: 00:00:01.109
Verifying …
Download verified successfully

Готово! Программа работает, светодиод мигает.

Конечно, этот пример совсем синтетический и в реальных проектах так никто не мигает индикаторами (хотя бы используют таймеры вместо HAL_Delay). Однако, главная цель этого урока — дать базовые представления о среде STM32CubeIDE, достигнута. На следующем уроке разберемся с кнопками и прерываниями.


Изменено:

STM32 и CubeIDE: Мигаем светодиодом: 7 комментариев

  1. выдает ошибку ../Core/Src/main.c:100:22: error: ‘LED_GPIO_Port’ undeclared (first use in this function); did you mean ‘MX_GPIO_Init’?
    такого характера
    подскажите что это может быть?

    • Компилятор говорит что не знает то такое LED_GPIO_Port и предлагает вместо этого функцию MX_GPIO_Init. Можете показать весь main.c?

  2. Сделал все по вашему уроку, проект не компилируется. ‘LED_GPIO_Port’ undeclared (first use in this function)
    ‘LED_Pin’ undeclared (first use in this function) main.c /led_blink/Core/Src line 97 C/C++ Problem. Так и не понял в чем проблема, буду дальше разбираться.

  3. Разобрался. Нужно было на led_blink.ioc нажать правой кнопкой мыши и выбрать Generate Code.

  4. Уважаемый, подскажите… Сделал, всё собралось, но есть одна странность — почему-то светодиод на таблетке молчит, но вот на программаторе мигает. Как этот шайтанамана лечится?

Добавить комментарий

Ваш адрес email не будет опубликован.