8-900-374-94-44
[email protected]
Slide Image
Меню

Stm32Duino bootloader: rogerclarkmelbourne/STM32duino-bootloader: Bootloader for STM32F103 boards, for use with the Arduino_STM32 repo and the Arduino IDE

Программирование STM32 Blue Pill через USB | arm

В этом руководстве (перевод статьи [1]) показано, как записать загрузчик USB (USB Bootloader) в память микроконтроллера STM32F103C8T6 платы Blue Pill. С помощью этого загрузчика можно намного удобнее программировать плату Blue Pill Board через её порт USB, без необходимости применения дополнительного внешнего оборудования (такого как отладчик ST-Link или преобразователь интерфейсов USB — TTL UART).

Примечание: настоятельно рекомендуется предварительно ознакомиться с базовым руководством [2], чтобы получить общее понятие о конфигурации, настройках, соединениях платы Blue Pill.

Самая главная киллер-фича платы Arduino UNO (или любых подобных плат Arduino), из-за которой она стала такой популярной — простота программирования. Все, что нужно — просто подключить платку Arduino к компьютеру PC, запустить среду Arduino IDE, выполнить пару простых настроек — и после этого можно сразу погрузиться в мир программирования.

Это действительно очень просто, если Вы правильно выбрали в настройках модель платы и правильный порт USB.

Изначально нельзя сказать то же самое про плату STM32F103C8T6 Blue Pill. В руководстве [2] было показано, как программировать обычную плату с микроконтроллером STM32F103C8T6 с помощью дополнительного внешнего адаптера USB — последовательный порт TTL UART. Описанный процесс выгрузки программы через адаптер FTDI не очень сложен, однако чтобы выгрузить программу, нужно каждый раз переключать микроконтроллер в режим программирования через его системный загрузчик (находящийся в ROM), и для нормальной работы нужно переключаться обратно (для чего ножку BOOT0 надо переводить в уровни лог. 1 и лог. 0).

Было бы проще, если использовать штатный microUSB порт платы Blue Pill для программирования. Загрузчик с открытым исходным кодом STM32F103C8T6 USB Bootloader [3] предоставляет такую возможность. С ним можно просто подключить плату Blue Pill через USB, и через него загрузить свою программу прямо из среды Arduino IDE.

Как дополнительное преимущество — не придется манипулировать ножкой BOOT0, её можно просто оставить в рабочем режиме.

Для работы нам понадобиться следующее:

• Платка STM32F103C8T6 Blue Pill.
• Преобразователь интерфейсов USB — TTL UART (на чипе FTDI, Ch440 или любой другой).
• Несколько соединительных проводов.
• Резистор 1.8 кОм (не обязательно).
• Компьютер PC с установленной системой программирования Arduino IDE

На рисунке ниже показана схема соединений между платой STM32 Blue Pill и преобразователем USB — TTL UART. Она такая же, как была описана в руководстве [2].

Наша задача — записать в память микроконтроллера двоичный код загрузчика [3] с помощью адаптера USB — TTL UART, как было описано в руководстве [2]. Двоичный код загрузчика находится в файле generic_boot20_pc13.bin, который можно загрузить по ссылке [4] (в каталоге binaries можно найти двоичный код загрузчика для многих других плат STM32).

Процесс установки загрузчика по шагам:

1. Выполните необходимые соединения, как показано на рисунке выше. Ножку BOOT0 необходимо перевести в уровень лог. 1, что при включении питания (или при сбросе) переведет микроконтроллер STM32F103C8T6 в режим программирования через его последовательный порт USART (запустится внутренний загрузчик, находящийся в системной памяти ROM микроконтроллера).

Примечание: логические уровни на ножках BOOT0 и BOOT1 переключаются желтыми перемычками. Резистор 1.8 кОм устанавливать не обязательно. Иногда это может понадобиться, при неуверенной работе интерфейса USB, если внутренней подтяжки pull-up не хватает.

2. Подключите к компьютеру адаптер USB — TTL UART, и подайте питание на плату Blue Pill. Питание можно подать через порт microUSB платы Blue Pill, либо так, как показано на рисунке выше — некоторые адаптеры USB — TTL UART выводят на свои контакты напряжение 5V или 3.3V. Запомните, какой номер COM-порта определился на компьютере, в Windows это можно узнать с помощью Диспетчера Устройств.

3. Выберите в каталоге binaries нужный файл загрузчика. Для платки Blue Pill нужен файл прошивки generic_boot20_pc13.bin [4].

Примечание: прошивки для разных плат отличаются в основном только ножкой микроконтроллера, к которой подключен светодиод. У платы Blue Pill это цифровой порт 13 по системе нумерации портов Arduino, что и отражено в имени файла прошивки загрузчика generic_boot20_pc13.bin.

Основные подготовительные работы сделаны. Остается самый важный шаг — выгрузка прошивки загрузчика через адаптер USB — TTL UART. Выгрузить прошивку можно двумя способами — с помощью утилиты STM32CubeProgrammer [5], либо с помощью утилиты STMFlashLoader Demo [6]. И тот и другой способ работают одинаково хорошо, в этой статье описано применение STM32CubeProgrammer.

4. Этот шаг можно пропустить, если утилита STM32CubeProgrammer уже установлена. Загрузите с сайта st.com утилиту STM32CubeProgrammer и установите. Утилита загружается в виде архива наподобие en. stm32cubeprg-win64_v2-7-0.zip (имя зависит от целевой операционной системы и от версии), для загрузки требуется регистрация на сайте st.com (регистрация несложная и бесплатная). Раскройте архив, и запустите находящийся в нем инсталлятор. При установке оставляйте все опции по умолчанию. После установки исполняемый файл утилиты STM32CubeProgrammer.exe будет находиться в папке наподобие «C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer».

5. Запустите утилиту STM32CubeProgrammer, выберите COM-порт для подключения (метки 1 и 2 на рисунке ниже). В этом примере показан выбор COM4, но в вашем случае может быть другой номер COM-порта, который был подключен на шаге 2. Оставьте остальные опции по умолчанию и кликните на кнопке Connect (метка 3 на рисунке).

6. В окне будет показан дамп памяти программ FLASH микроконтроллера, начиная с адреса 0x08000000. Кликните на кнопку загрузки файла прошивки, она находится слева (на рисунке ниже она показана красной стрелкой).

7. Отобразится окно диалога «Erasing & Programming», см. рисунок ниже. Кнопкой Browse (метка 1 на рисунке) выберите файл прошивки generic_boot20_pc13.bin. Убедитесь, что в поле ввода Start address указано значение 0x08000000 (метка 2 на рисунке). Все опции оставьте, как на рисунке, и кликните на кнопку Start Programming (метка 3 на рисунке).

 Программа прошивки начнет записываться в память микроконтроллера, начиная с адреса 0x08000000, и через несколько секунд процесс завершится (отобразится сообщение «File download complete»).

8. Закройте утилиту STM32CubeProgrammer, отключите адаптер USB — TTL UART от компьютера. Переставьте перемычку BOOT0 обратно (для уровня лог. 0), после включения питания сразу будет запускаться программа загрузчика.

[Установка необходимых драйверов]

9. Перед тем, как продолжить, нужно скачать драйверы.

Сначала загрузите ZIP-архив по ссылке [6], это драйверы для Arduino. Распакуйте содержимое архива, и переименуйте распакованную корневую папку как Arduino_STM32. Скопируйте эту папку со всем содержимым в директорию «C:\Users\ИмяПользователя\Documents\Arduino\hardware» (здесь вместо ИмяПользователя будет другой каталог, соответствующий имени текущего пользователя операционной системы). Если каталог Arduino\hardware не существует, то создайте его.

10. Откройте консоль командной строки с правами администратора, и перейдите в каталог «C:\Users\ИмяПользователя\Documents\Arduino\hardware\Arduino_STM32\drivers\win”. Запустите файл install_drivers.bat, это установит Maple DFU Driver и Maple Serial Driver.

После этого запустите файл install_STM_COM_drivers.bat для установки STM Serial Driver.

[Конфигурирование Arduino IDE

]

11. Если Arduino IDE уже открыта, закройте её, подключите STM32 Blue Pill к компьютеру PC кабелем microUSB, и снова запустите Arduino IDE. В Arduino IDE перейдите в меню Tools и сделайте необходимые изменения в селекторе платы (Board Selector) так, как это было описано в руководстве [2]. Но сейчас необходимо поменять метод выгрузки программы (Upload Method) на «Maple DFU Bootloader 2.0». Остальные настройки будут такими же.

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

В качестве простой программы, на которой будем проверять работу сделанных настроек, выберите Blinky Sketch для STM32F103C8T6 Blue Pill Board. Убедитесь что для порта светодиода LED выбран порт PC13, и кликните на кнопку Upload. Программа Blinky Sketch скомпилируется, и через USB-загрузчик [3] будет записана в память микроконтроллера платы.

После загрузки программы светодиод начнет мигать.

[Ссылки]

1. How to Upload STM32F103C8T6 USB Bootloader? Program STM32 Blue Pill via USB site:electronicshub.org.
2. Getting Started with STM32F103C8T6 Blue Pill site:electronicshub. org.
3. rogerclarkmelbourne / STM32duino-bootloader site:github.com.
4. generic_boot20_pc13.bin — двоичный файл загрузчика для Blue Pill.
5. STM32CubeProgrammer software for all STM32 site:st.com.
6. STMFlashLoader Demo.
7. rogerclarkmelbourne / Arduino_STM32 site:github.com.
8. Program «blue pill» with STM32 Cores in Arduino IDE site:onetransistor.eu.
9. STM32 «Blue Pill» в среде Arduino — использование STM32F103C8T6 в Arduino IDE site:tataranovich.com.

Использование STM32F103C8T6 в Arduino IDE

Разобрался как использовать плату на базе контроллера STM32F103C8T6 в Arduino. Мой вариант платы выглядит вот так

В wiki сайта stm32duino.com такая плата называется Blue Pill. И эта плата имеет несколько недостатков, которые относительно просто устранить имея под рукой паяльник.

Крепление micro-usb разъема не внушает доверие — я пропаял его. USB D+ пин подтянут к питанию через резистор номиналом 10k, но чтобы устройство определилось на шине USB как Full Speed, нужно подтягивать USB D+ к питанию через резистор номиналом 1,5k. Гуру smd пайки могут заменить на плате резистор R10, но я выбрал вариант с подключением резистора номиналом 1,8k между пинами PA12 (на этот пин выведен USB D+) и 3.3v.

Прошивку можно заливать через USB-UART преобразователь. Для этого нужно переключить преобразователь в режим 3,3V и подключить выводы согласно таблице (в комментарии подсказали, что выводы PA9/PA10 толерантны к 5V)

USB-UARTBlue Pill
GndGnd
Vcc3.3V
RXPA9
TXPA10

В настройках Arduino IDE нужно добавить поддержку SMT32F103 (File / Preferences / Additional Boards Manager URL):

http://dan. drown.org/stm32duino/package_STM32duino_index.json

В Boards Manager (Tools / Board / Boards Manager) установить «SMT32F1xx/GD32F1xx boards by smt32duino» и активировать загрузку прошивки через Serial (Tools / Upload method / Serial). На плате нужно переключить перемычку BOOT0 в High, а BOOT1 в Low. После этого нужно сбросить плату и можно заливать скетчи. Для нормальной работы прошивки BOOT0 и BOOT1 должны быть в состоянии Low.

Но лично я рекомендую прошить STM32duino bootloader и пользоваться загрузкой скетча через USB. Для этого подключаем плату через USB-UART преобразователь, как описано выше. Затем в консоли выполняем команды

$ wget -P /tmp https://github.com/rogerclarkmelbourne/STM32duino-bootloader/raw/master/binaries/generic_boot20_pc13.bin
$ cd ~/.arduino15/packages/stm32duino/tools/stm32tools/2017.11.8/linux/stm32flash
$ ./stm32flash -w /tmp/generic_boot20_pc13.bin -v -g 0x0 /dev/ttyUSB0

Мне еще потребовалось подправить правила UDEV, чтобы ModemManager, libmtp и UDisks не трогали плату:

$ cat /etc/udev/rules. d/45-usbprog.rules
# STM32duino USB bootloader
ATTRS{idProduct}=="1001", ATTRS{idVendor}=="0110", MODE="0660", GROUP="plugdev", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{UDISKS_PRESENTATION_HIDE}="1", ENV{UDISKS_IGNORE}="1"
ATTRS{idProduct}=="1002", ATTRS{idVendor}=="0110", MODE="0660", GROUP="plugdev", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{UDISKS_PRESENTATION_HIDE}="1", ENV{UDISKS_IGNORE}="1"
ATTRS{idProduct}=="0003", ATTRS{idVendor}=="1eaf", MODE="0660", GROUP="plugdev" SYMLINK+="maple", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{UDISKS_PRESENTATION_HIDE}="1", ENV{UDISKS_IGNORE}="1"
ATTRS{idProduct}=="0004", ATTRS{idVendor}=="1eaf", MODE="0660", GROUP="plugdev" SYMLINK+="maple", ENV{ID_MM_DEVICE_IGNORE}="1", ENV{UDISKS_PRESENTATION_HIDE}="1", ENV{UDISKS_IGNORE}="1"

В начале файла /lib/udev/rules.d/69-libmtp.rules добавить

# STM32duino USB bootloader
ATTR{idVendor}=="1eaf", GOTO="libmtp_rules_end"
ATTR{idVendor}=="0110", GOTO="libmtp_rules_end"

После этого выполнить

$ sudo udevadm control --reload-rules

Мне пришлось перезагрузить компьютер — в моем случае UDisks не отставал от платы без перезагрузки. После этого отключить USB-UART преобразователь, выставить перемычки BOOT0 и BOOT1 в Low и подключить плату к компьютеру через USB. Теперь выбираем в Arduino IDE тип загрузки «STM32duino bootloader» (Tools / Upload method / STM32duino bootloader).

Первую загрузку скетча нужно делать включив режим infinite в загрузчике. Для этого подключается резистор номиналом 10k между 3,3v и PC14. После сброса светодиод на плате начинает постоянно мигать, что означает что загрузчик будет ждать начала загрузки без ограничения по времени. После первой загрузки этот режим можно выключить и дальше пользоваться платой как обычно.

Последовательный порт платы опознается в Linux как /dev/ttyACM0 и его нужно выбрать в «Tools / Port» чтобы работал Serial Monitor.

В Arduino IDE 1.6.8 у меня были ошибки при компиляции и я обновился до Arduino IDE 1.8.5. Для проверки работы платы можно использовать пример Blink (File / Examples / 01.Basics / Blink).

Загрузчик Blue Pill STM32duino — работает в Arduino IDE, но не в VSCode + PlatformIO — Платформы разработки

MakotoNinja

#1

Aloha Folks,

Я могу успешно прошить плату STM32 Blue Pill с загрузчиком Arduino, используя плату FTDI и STMicroelectronics «Flash Loader Demonstrator». После этого я могу загрузить скетч Arduino с помощью Arduino IDE и убедиться, что программа blink работает с помощью PC13.
Однако при загрузке с помощью VSCode и PlatformIO терминал показывает успешную загрузку, но плата становится бесполезной, поскольку светодиод на ПК 13 не мигает, а горит постоянно, а плата отображается как «неизвестное устройство» в диспетчере устройств Windows как в отличие от устройства «Maple Serial», требующего от меня повторной прошивки платы с помощью файла generic_boot20_pc13.bin.

Ресурсы были:
https://donneyfan.com/blog/usb-serial-for-blue-pill-stm32-with-platformio
https://community.platformio.org/t/platformio-on-vscode- for-stm32-stm32f103-bluepill-with-arduino-framework-not-upload-через-usb-dfu-bootloader/16393

Мой файл platformio. ini выглядит следующим образом:

 [env:bluepill_f103c8]
платформа = ststm32
доска = bluepill_f103c8
фреймворк = ардуино
скорость_монитора = 115200
upload_port = COM15
upload_protocol = dfu
 

…и последний бит окна терминала после загрузки:

 Связывание .pio\build\bluepill_f103c8_128k\firmware.elf
Проверка размера .pio\build\bluepill_f103c8_128k\firmware.elf
Расширенное использование памяти доступно через «PlatformIO Home > Project Inspect».
ОЗУ: [ ] 3,9% (использовано 808 байт из 20480 байт)
Flash: [= ] 9,5% (использовано 12460 байт из 131072 байт)
Сборка .pio\build\bluepill_f103c8_128k\firmware.bin
Настройка протокола загрузки...
В НАЛИЧИИ: blackmagic, cmsis-dap, dfu, jlink, stlink
ТЕКУЩИЙ: upload_protocol = dfu
Ищу порт загрузки...
Используя указанное вручную: COM15
Загрузка .pio\build\bluepill_f103c8_128k\firmware.bin
клен_загрузчик v0.1
Сброс в загрузчик через импульс DTR
Поиск устройства DFU [1EAF:0003]...
Сброс через USB Serial Failed! Вы выбрали правильный последовательный порт?
Предполагая, что плата находится в режиме постоянного загрузчика и продолжает попытки программирования dfu. ..
Нашел!
Открытие USB-устройства 0x1eaf:0x0003...
Найдено время выполнения: [0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=2, name="STM32duino bootloader v1.0 Upload to Flash 0x8002000"
Настройка конфигурации 1...
Заявление на интерфейс USB DFU...
Установка альтернативной настройки...
Определение состояния устройства: состояние = dfuIDLE, состояние = 0
dfuIDLE, продолжение
Размер передачи = 0x0400
bytes_per_hash=255
Начало загрузки: [############################################## ####] Готово!
ошибка сброса после скачивания: usb_reset: не удалось сбросить устройство, ошибка win: указано несуществующее устройство.
состояние (8) = dfuMANIFEST-WAIT-RESET, состояние (0) = нет состояния ошибки
Сделанный!
Сброс USB для возврата в режим выполнения
тайм-аут ожидания серийного номера COM15
 

Я не знаю, что делать сейчас, любые предложения будут полезны.

Максгерхардт

#2

Будет ли работать, если собрать прошивку с ядром Maple вместо STM32_Core? Добавить

 board_build.core = клен
 

на platformio.ini , перезаписать загрузчик, перезалить заново.

МакотоНиндзя

#3

@maxgerhardt Это помогло, спасибо, но теперь у меня другая проблема.

Когда я программирую плату с помощью Arduino IDE, я могу отключить плату от компьютера, повторно подключить ее, и плата отображается в диспетчере устройств как Maple Serial под портами (COM и LPT) категория:

Когда я программирую плату через VSCode и PlatformIO, отсоединяю плату от компьютера и снова подключаю ее, она регистрируется в диспетчере устройств как Maple DFU под категорией устройств libusb-win32 , и я больше не могу его программировать, и мне нужно снова записать загрузчик.

Это нормальное поведение?

Максгерхардт

#4

Странно, я проверю свою голубую таблетку.

МакотоНиндзя

#5

@maxgerhardt Я не уверен, что изменилось, но теперь вроде работает.
В какой-то момент я заметил, что когда я подключил синюю таблетку, диспетчер устройств на долю секунды показал ее как Maple DFU , прежде чем исчезнуть и появиться в COM-портах, как и должно быть.

1 Нравится

Загрузить STM32F103C8T6 USB Bootloader | Запрограммируйте STM32 через порт USB

В этом уроке я покажу вам, как загрузить загрузчик USB на плату Blue Pill STM32F103C8T6. Используя USB-загрузчик STM32F103C8T6, вы можете легко запрограммировать Blue Pill Board, просто используя встроенный USB-порт без необходимости использования какого-либо внешнего оборудования.

Важное примечание: Я настоятельно рекомендую вам пройти руководство « НАЧАЛО РАБОТЫ С STM32F103C8T6 », прежде чем продолжить, так как есть много конфигураций, настроек, подключений и объяснений, которые очень важны.

Outline

Введение

Одна вещь, которая делает Arduino UNO (или любую плату Arduino в этом отношении) особенной, — это простота программирования. Просто подключите Arduino к компьютеру и загрузите программу с помощью Arduino IDE. Это так просто (при условии, что у вас есть правильные драйверы и выбран правильный USB-порт).

Чего нельзя сказать о плате STM32F103C8T6 Blue Pill Board. Если вы помните, в учебнике « Начало работы с STM32F103C8T6 » я показал вам, как загрузить программу на плату Generic STM32F103C8T6 с помощью внешнего адаптера USB-Serial.

Загрузить программу с помощью адаптера FTDI не так уж и сложно, но каждый раз, когда вы хотите загрузить программу, вы должны переключаться в режим программирования, а для нормальной работы вам необходимо вернуться в рабочий режим (переключение контакты BOOT0 между HIGH и LOW).

Было бы проще, если бы мы могли просто использовать встроенный порт microUSB на плате Blue Pill для загрузки программы. USB-загрузчик STM32F103C8T6 предоставляет такое решение, при котором вы можете просто подключить Blue Pill к компьютеру через USB-порт и загрузить программу. В качестве дополнительного преимущества вам не нужно возиться с контактами BOOT, поскольку вы можете оставить его в рабочем режиме.

Необходимые компоненты

  • STM32F103C8T6 Blue Pill Board
  • Преобразователь USB в последовательный порт (например, программатор FTDI)
  • Соединительные провода
  • Резистор 1,8 кОм (дополнительно)
  • ПК

Принципиальная схема

Соединения между STM32 Blue Pill и преобразователем USB в последовательный интерфейс аналогичны тем, которые я описал в Руководстве по началу работы. Ниже приведено эталонное изображение для соединений.

Загрузка USB-загрузчика STM32F103C8T6

Чтобы загрузить программу через USB-порт на Blue Pill, на MCU должен быть установлен USB-загрузчик. Благодаря вкладу LeafLabs (Maple Bootloader) и rogerclarkmelbourne, репозиторий загрузчиков доступен для ряда плат. Исходный код доступен на GitHub в это ссылка .

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

Выполнение соединений

Первым шагом является подключение платы STM32 Blue Pill к адаптеру USB-Serial, как показано на рисунке выше. Кроме того, на выводах BOOT0 установлен ВЫСОКИЙ уровень, т. е. плата переведена в режим программирования.

Как только это будет сделано, вы можете подключить преобразователь USB к последовательному порту к ПК и проверить COM-порт.

Загрузите двоичный файл загрузчика

Как упоминалось ранее, этот репозиторий состоит из разных двоичных файлов для разных типов плат STM32. Все эти двоичные файлы классифицируются на основе подключения светодиода USER. Например, мы знаем, что пользовательский светодиод на вашей Blue Pill подключен к контакту 13 порта C, то есть к PC13.

Следовательно, двоичный файл имеет соответствующее имя « generic_boot20_pc13.bin ». Для всех общих плат на базе Blue Pill STM32F103C8T6 вы можете использовать этот двоичный файл. Скачать бинарник можно с это ссылка GitHub.

Если у вас другая/нестандартная плата. Затем загрузите соответствующий двоичный файл из списка двоичных файлов, представленных в репозитории GitHub.

Загрузка двоичного файла загрузчика USB в STM32

После того, как аппаратные соединения выполнены и вы загрузили необходимый двоичный файл, вы готовы загрузить загрузчик USB STM32F103C8T6 в MCU. Для этого вы можете использовать STM32CubeProgrammer.

Если вы помните в « Начало работы с STM32F103C8T6 », я скачал программное обеспечение STM32CubeProgrammer с официального сайта STMicroelectronics. Если вы следовали этому руководству, значит, вы уже загрузили это программное обеспечение, которое в моем случае можно найти в папке «C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin». Перейдите в аналогичное место на вашем ПК и откройте файл «STM32CubeProgrammer.exe».

В правой части страницы выберите «UART» в качестве режима связи и выберите соответствующий COM-порт. В моем случае это COM4. Оставьте все остальное с настройками по умолчанию и нажмите «Подключиться».

После успешного подключения программа прочитает содержимое флэш-памяти и отобразит его. Затем нажмите на символ со стрелкой загрузки. Это откроет опцию «Стирание и программирование».

Нажмите «Обзор» и найдите ранее загруженный двоичный файл, т. е. файл generic_boot20_pc13.bin. Начальный адрес будет автоматически заполнен «0x08000000». Если нет, введите это значение. Наконец, нажмите «Начать программирование». Программное обеспечение начнет загружать загрузчик USB во флэш-память MCU, и вы можете увидеть журнал ниже.

После загрузки двоичного файла появится сообщение «Загрузка файла завершена». Нажмите «ОК» и, наконец, нажмите «Отключить» в правом верхнем углу. На этом загрузка USB-загрузчика STM32F103C8T6 во флэш-память MCU завершена. На этом этапе вы можете отключить USB-последовательный адаптер от платы Blue Pill, а также переключить контакт BOOT0 обратно в LOW, т.е. в рабочий режим, поскольку вам это не нужно.

Использование ST Flash Loader Tool для загрузки загрузчика USB

Вместо использования программного обеспечения STM32CubeProgrammer вы можете использовать альтернативный инструмент под названием ST Flash Loader. Это также официально предоставлено STMicroelectronics, и вы можете скачать его с по этой ссылке .

Вы должны войти на веб-сайт ST, чтобы загрузить инструмент, и после завершения загрузки извлеките содержимое zip-файла и дважды щелкните файл «flash_loader_demo_v2.8.0.exe». Это установит Flash Loader Tool.

После установки инструмента откройте его из папки «C:\Program Files (x86)\STMicroelectronics\Software\Flash Loader Demo», дважды щелкнув файл «STMFlashLoader Demo. exe».

Прежде чем продолжить, убедитесь, что плата STM32 Blue Pill Board подключена к USB-последовательному программатору через соединения USART, а на выводе BOOT0 установлен ВЫСОКИЙ уровень.

Если вы уже подключили USB-последовательный адаптер к компьютеру, выберите правильный COM-порт из раскрывающегося списка и нажмите «Далее». Если все пойдет хорошо, вы получите сообщение «Цель доступна для чтения. Пожалуйста, нажмите «Далее», чтобы продолжить». Нажмите «Далее».

На следующей странице отображается информация, относящаяся к цели. Нажмите «Далее».

На следующей странице выберите опцию «Загрузить на устройство» и выберите загруженный двоичный файл. После этого начальный адрес будет автоматически заполнен как 8000000.

Когда вы нажмете «Далее», инструмент начнет загрузку двоичного файла загрузчика USB в MCU.

Если все пойдет хорошо, вы получите сообщение «Операция загрузки успешно завершена». Вы можете закрыть инструмент.

Убедитесь, что на контакте BOOT0 установлен НИЗКИЙ уровень, и отключите преобразователь USB в USART от платы STM32.

Программирование STM32F103C8T6 через порт USB

Установка необходимых драйверов

Прежде чем продолжить, вам необходимо загрузить некоторые драйверы. Сначала загрузите связанный с STM32 инструмент для Arduino с по этой ссылке . Нажмите «Клонировать или загрузить» и нажмите «Загрузить ZIP». Извлеките содержимое и переименуйте папку в «Arduino_STM32». Скопируйте эту папку и вставьте ее в каталог «C:\Users\TrailBlazer\Documents\Arduino\hardware».

ПРИМЕЧАНИЕ. В приведенном выше пути «TrailBlazer» — это мое имя пользователя. Замените его своим. Если каталог Arduino\hardware отсутствует, создайте его.

Откройте командную строку с правами администратора и перейдите в каталог «C:\Users\TrailBlazer\Documents\Arduino\hardware\Arduino_STM32\drivers\win». Сначала запустите файл «install_drivers.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *