STM32 "Blue Pill" в среде Arduino |
Добавил(а) microsin | ||||||||||||||||||||||||
В этом руководстве (перевод [1]) рассматривается, как программировать платку на микроконтроллере STM32F103C8T6, так называемую "Blue Pill" [2] (часто эту плату называют Arduino STM32) с помощью Arduino IDE. Платки Blue Pill в изобилии продаются на AliExpress и Taobao, для поиска вбейте STM32 stm32f103c8t6. Примечание: если Вы любите паять, то можно также самому заказать печатную плату Blue Pill онлайн-среде EasyEDA благодаря проекту [3]. Это модифицированный в сторону упрощения проект - заменен регулятор LDO на более удобный. Также изменены номинал резистора подтяжки USB и светодиоды индикации. Десяток плат обойдутся примерно $5, плюс доставка порядка $6. [Что понадобится] Платка STM32 "Blue Pill" или аналогичная: Отладчик ST-LINK/V2 для микроконтроллеров семейств STM8 и STM32: Примечание: этот отладчик можно купить на AliExpress и Taobao по цене порядка $2. Подойдет и более старый отладчик ST-LINK или ST-LINK/v1, однако будьте внимательны к подключению отладчика через выводы SWDCLK, SWDIO, GND и +3.3V, цоколевки у разъема отладки могут различаться (см. врезку ниже). На цоколевках синим цветом выделены 4 провода, которыми адаптер подключается к микроконтроллеру STM32. [STLink/STLink-V1] Вид на штырьки разъема снаружи: +----+ [STLink-V2] Вид на штырьки разъема снаружи: +----+ Еще один возможный вариант цоколевки: +----+ [Конфигурирование Arduino IDE] Автор оригинальной статьи [1] использовал Arduino 1.8.1. Я экспериментировал в среде Arduino версии 1.8.13, и все описанное относится к ней. Так что вероятно, что в другой более-менее новой версии Arduino все также будет работать. Процесс по шагам: 1. Зайдите в меню Файл -> Настройки (File -> Preferences) и кликните на кнопку справа от поля ввода "Дополнительные ссылки для Менеджера плат:" (Additional Boards Manager URLs). 2. В окно ввода URL вставьте ссылку https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json Закройте окна настроек кликами на OK. 3. Зайдите в меню Инструменты -> плата -> Менеджер плат... (Tools -> Board -> Board Manager). Для ускорения поиска нужного дополнения в выпадающем списке Тип (Type) выберите Внесены (Contributed). Прокрутите до STM32 Cores by STMicroelectronics и нажмите на кнопку Установка (Install). Установка пакета поддержки STM32 займет несколько минут. Загрузятся утилиты компилирования и отладки ARM (ARM debugging/compiling toolchain). 4. Необходимо добавить поддержку ST-Link. Загрузите Arduino_STM32-master.zip по ссылке [4]. Создайте папку Arduino_STM32 в каталоге arduino-1.8.13\hardware\ (здесь arduino-1.8.13 это корневой каталог установки Arduino IDE, где находится исполняемый файл arduino.exe). Распакуйте содержимое архива Arduino_STM32-master.zip в папку arduino-1.8.13\hardware\Arduino_STM32. Перезапустите Arduino IDE. 5. Теперь надо сделать выбор используемой платы и программатора. Зайдите в меню Инструменты (Tools) -> Плата: (Board) -> STM32F1 Boards (Arduino_STM32) -> Generic STM32F103C series. Выбор может быть сделан на основе используемого на плате микроконтроллера. Пример возможного выбора: Плата: "Generic STM32F103C series" [Загрузка скетча] Чтобы убедиться, что все работает, запишем в память STM32103 простейшую программу мигания светодиодом - традиционный "Hello World" в мире микроконтроллеров. Для этого зайдите в меню Файл -> Примеры -> 01.Basics -> Blink (File -> Examples -> 01.Basics -> Blink). Загрузится скетч Blink. Соедините STLink с платой Blue Pill четырьмя проводами (см. выше врезку "Цоколевки разъема SWD адаптеров ST-Link"):
Перемычки BOOT0 и BOOT1 установите в положение 00, что соответствует запуску кода из памяти Flash.
Нажмите на круглую кнопку со стрелкой вправо (эквивалентно выбору в меню Скетч -> Загрузка Ctrl+U). Программа скомпилируется и загрузится, светодиод PC13 начнет медленно мигать. [Что дальше?] Микроконтроллер серии STM32F1 (Arm® Cortex™-M) обладает широким набором аппаратных интерфейсов и возможностей использования. Поэкспериментируйте с другими примерами кода и проектами из меню Файл -> Примеры. Будьте осторожны с использованием выводов USB- и USB+ (ножки портов PA11 и PA12) - они соединены с выводами коннектора microUSB. Также имейте в виду, что к выводам OSC32IN и OSC32OUT (ножки портов PC14 и PC15) подключен часовой кварцевый резонатор на 32.768 кГц. [Ссылки] 1. How to program a STM32 Blue Pill with Arduino site:idyl.io. |