Содержание

STM32 Nucleo F401RE: руководство по использованию

Введение

Nucleo – это семейство плат, имеющих на «борту» программатор и предоставляют большие возможности для разработчика. Обычно, чем больше возможностей, тем выше сложность в освоение и знакомстве. К счастью, семейство Nucleo не имеет этого недостатка: благодаря среде mbed стало легко очень просто познакомиться. Среда mbed существует в трёх вариантах:

Продемонстрируем работу с Desktop-версией среды Mbed на аналоге «Hello world» в мире микроконтроллеров – blink (программа, мигающая светодиодом).

План действий

Плата Nucleo прошивается очень просто: при подключении к компьютеру она определяется как «флешка». Вы просто нажимаете одну кнопку, и прошивка сохраняется на эту «флешку». И всё – плата прошита. Прошивки мы будем разрабатывать в среде mbed. mbed – это среда разработки. Чтобы воспользоваться ею, необходимо скачать среду и зарегистрироваться на сайте. Пользоваться средой можно абсолютно бесплатно. Итак, вот последовательность наших действий:

  1. Скачивание и установка Mbed Studio;
  2. Заходим в среду разработки;
  3. Создаём программу;
  4. Пишем код;
  5. Транслируем код в прошивку;
  6. Записываем прошивку на плату.

Поехали!

1. Скачивание и установка mbed IDE

Доступ к сайту mbed с территории России временно закрыт. Воспользуйтесь VPN соединением или скачайте установщик с нашего сайта

Для начала перейдём на сайт mbed.org.

Промотаем страницу до раздела Compiler & IDE, в Mbed Studio нажимаем на Learn more

В открывшемся окне нажимаем кнопку Download for … с названием своей операционной системы.

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

В открывшемся окне ставим галочку напротив ST-Link drivers (необходимо для актуализации драйверов) и нажимаем клавишу next

В новом диалоговом окне нажимаем на клаву I Agree, тем самым соглашаясь с лицензионным соглашением

Укажем путь для установки IDE, мы оставили стандартный путь, и нажимаем кнопку Install.

При успешном выполнении всех шагов начнётся установка Mbed Studio.

В ходе установки Mbed Studio предложить установить драйвер для поддерживаемых плат, соглашаемся и устанавливаем драйвер.

После успешной установки Mbed Studio появиться окно Completing Mbed Studio Setup – поздравляем! Установка завершилась успехом. Ставим галочку на против Run Mbed Studio и нажимаем клавишу Finish.

2. Заходим в среду разработки

После того как мы нажали кнопку Finish – Mbed Studio запуститься автоматически

На этом этапе нажимаем на надпись Create one now. Приложение автоматически откроет браузер с формой

В открывшейся форме нажимаем Create an account и вводим данные для создания аккаунта и ставим галочку напротив надписи I agree to Arm`s term and conditions of use.

После ввода данных в форму нажимаем клавишу Sign up и открываем свою почту. На почту придёт письмо с подтверждением аккаунта – подтверждаем и открываем Mbed studio. Вводим почту и пароль, которые ввели при регистрации, и нажимаем на кнопку Sign in

В открывшемся окне нажимаем кнопку Get started.

Поздравляем! Вы авторизовались в mbed можете использовать как Desktop версию, так и WEB-версию среду разработки.

3. Создаём программу

Рассмотрим процесс создания программы в Desktop версии Mbed Studio. При первом запуске Mbed Studio нам необходимо нажать на кнопку +New program

Перед нами откроется новое диалоговое окно

Нам необходимо указать в Example program тип планируемой программы. Так как мы планируем мигать светодиодом, то выбираем mbed‑os‑example‑blinky

Остальные поля программа заполнит автоматически.

Mbed Studio подготовит основные файлы проекта

Подключаем STM32 Nucleo к компьютеру и в Mbed Studio открываем раздел Target.

В выпадающем списке мы должны увидеть раздел NUCLEO-F401RE с зелёным значком USB – это подключённая плата, выбираем её.

4. Пишем код

Подключив плату, выбираем файл main.cpp

Мы должны увидеть базовый код мигания светодиодом

main.cpp
  1. #include "mbed.h"
  2.  
  3. // Частота миганий в миллисекундах
  4. #define BLINKING_RATE 5000ms
  5.  
  6. int main()
  7. {
  8. // Инициализация цифрового пина LED1 в качестве выхода
  9. #ifdef LED1
  10. DigitalOut led(LED1);
  11. #else
  12. bool led;
  13. #endif
  14.  
  15. while (true) {
  16. led = !led;
  17. ThisThread::sleep_for(BLINKING_RATE);
  18. }
  19. }

5. Транслируем код в прошивку

Убедимся, что в Build profile выбран режим Debug, и нажимаем на кнопку с молотком, которая запустит сборку и отладку проекта.

В разделе Output в самом начале могут появиться предупреждения [Warning], выделенные жёлтым цветом – это нормально, если на вашем компьютере установлена ещё одна среда для разработки на языке C++. В итоге мы должны увидеть сообщение о том, что код собран и запущен на плате.

6. Записываем прошивку в память платы

Для записи кода на плату в Build profile выбираем режим Develop

И нажимаем на кнопку записи программы в память контроллера

Поздравляем! Вы успешно загрузили свой первый код в память STM32 Nucleo!

Что дальше

Теперь вы умеете создавать программы, транслировать их в файл прошивки для вашей аппаратной платформы и прошивать. Пользуясь документацией, вы можете теперь писать полноценные программы, управляющие не только светодиодами. В вашем распоряжении классы для работы с аналоговыми входами, UART, АЦП, ШИМ и многое другое.

В качестве обучения будет очень полезно выполнить 20 экспериментов.

Полезные ресурсы

Установщик среды mbed