STM32duino

Большинство плат Arduino основаны на микроконтроллерах AVR, которые не отличаются высокой производительностью. Есть платы типа Arduino Due, в которой установлен 32-разрядный микроконтроллер, но она значительно дороже Uno, и размером с Arduino Mega.

Однако существуют производительные микроконтроллеры stm32, и с ними есть удобные и недорогие отладочные платы, например, знаменитая Blue pill (на aliexpress находится по запросу stm32f103c8t6):

800px-STM32_Blue_Pill_perspective

По размерам и цене она сопоставима с Arduino Nano, при этом намного мощнее. Сравнение этих двух плат можно посмотреть, например, здесь.

Однако, Arduino стала популярной не из-за своей производительности, а из-за простоты в работе, stm32 же намного сложнее. Но с относительно недавних пор появилась возможность программировать stm32 в Arduino IDE, используя те же команды. Т.е. вы можете работать с этой платой, как с Arduino, имея при этом больше возможностей.

Сразу скажу, для программирования (по крайней мере начального) потребуется программатор. Можно использовать st-link, а можно простой uart. Я буду использовать вот такой:

Картинки по запросу usb-ttl

Для начала настроим Arduino IDE.

Зайдите в настройки (Файл -> Настройки) и добавьте в Дополнительные ссылки для менеджера плат следующую ссылку: http://dan.drown.org/stm32duino/package_STM32duino_index.json

Дальше, зайдите в Менеджер плат (Инструменты -> Плата -> Менеджер плат…) и установите Arduino SAM Boards.

arduino_sam_boards

После этого внизу найдите и установите STM32F1xx/GD32F1xx boards.

stm32f1

Теперь у вас настроена Arduino IDE. Подключим программатор к плате.

USB-UART -> STM32

TX  -> A10

RX  -> A9

GND -> GND

5V  -> 5V

uart-stm32

Также, для загрузки программы нужно переставить перемычку Boot0 в положение 1:

Картинки по запросу stm32f103c8t6

Теперь можно загрузить первую программу. В Arduino IDE выберите плату Generic STM32F103C series.

Screenshot_1

Зайдите в инструменты и измените Upload Method на Serial.

Screenshot_2

Остальные настройки оставьте без изменений.

Порты здесь подписываются не только числами, но и буквами. В программировании перед номером порта ставится буква P. Например, если мы работаем с портом A1, то при программировании будем указывать порт как PA1.

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

Примечание: для светодиода на плате значения инвертированы, т.е. LOW — включить, HIGH — выключить.

Перед загрузкой программы нажмите кнопку Reset на Stm32.

Как видите, по сравнению с Arduino поменялся только номер порта.

Загрузите программу, и убедитесь, что все работает.

Также, будет работать и большинство библиотек, идущих в комплекте с Arduino.

Для stm32 есть некоторые дополнительные команды, которые мы рассмотрим в следующий раз.

Оставить комментарий

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