- Необходимые материалы
- Принципиальная электрическая схема
- Загрузка загрузчика Maple на плату разработки STM32
- Подготовка IDE Arduino и установка драйверов
- Программирование STM32 (Blue Pill) напрямую через порт USB
Плата разработки STM32, в которой размещен микроконтроллер STM32F103C8, становится все более популярной благодаря архитектуре ARM Cortex M3, высокой скорости работы и большему количеству периферийных устройств. Кроме того, поскольку эту плату можно легко запрограммировать с помощью IDE Arduino, она стала предпочтительным выбором для многих любителей и инженеров для быстрого прототипирования.
В нашем предыдущем руководстве мы изучили основы платы разработки STM32, а также запрограммировали ее мигать светодиодом. Но у него был один огромный недостаток. Чтобы запрограммировать плату, мы использовали модуль программатора FTDI, а также должны были переключать перемычку загрузки 0 между положением и 1 при загрузке и тестировании кода, что, безусловно, является сложной задачей. Также совершенно не использовался порт mini-USB на плате разработки. Причина в том, что при покупке платы разработки STM32 она не поставляется с загрузчиком, готовым для Arduino, и, следовательно, плата не будет обнаружена вашим компьютером при подключении через USB.
Надеюсь, что существует экспериментальный загрузчик, разработанный LeafLabs для мини-плат Maple. Этот загрузчик можно однократно прошить в STM32, и после этого мы можем напрямую использовать USB-порт платы STM32 для загрузки программ, как и любые другие платы Arduino. Однако этот загрузчик все еще находится в стадии разработки на момент документирования этого руководства и не рекомендуется для критически важных приложений. Перед тем, как приступить к работе с этим руководством, убедитесь, что вы прочитали предыдущее руководство, чтобы понять основы этой платы, включая подробности о спецификациях и распиновке.
Необходимые материалы
- STM32 - (BluePill) Совет по развитию (STM32F103C8)
- Программист FTDI
- Макетная плата
- Соединительные провода
- Ноутбук с Интернетом
Принципиальная электрическая схема
Чтобы запрограммировать плату STM32 Blue Pill напрямую через порт USB, нам нужно сначала прошить загрузчик Maple в MCU. Для этого нам понадобится последовательная плата FTDI. Эта плата подключена к выводам Rx и Tx STM32, как показано ниже.
Вывод Vcc платы FTDI подключается к выводу STM32 5V питания платы. Земля подключена к земле STM32. Выводы Rx и Tx платы FTDI подключаются к выводам A9 и A10 модуля STM32 соответственно. Где A9 - это вывод Tx MCU STM32, а A10 - вывод Rx.
Убедитесь, что перемычка загрузки 0 на плате установлена в положение 1 (режим программирования) во время загрузки загрузчика. После прошивки загрузчика этот штифт можно вернуть в исходное положение (рабочий режим).
Загрузка загрузчика Maple на плату разработки STM32
После того, как мы установили вышеуказанное соединение, подключите плату FTDI к вашему компьютеру и следуйте инструкциям по прошивке загрузчика в STM32.
Шаг 1: Мы должны загрузить двоичные файлы программы загрузчика (bin-файл) со страницы github. Существует множество версий bin-файла, для платы Blue Pill используйте эту ссылку на github и нажмите кнопку загрузки, чтобы загрузить bin-файл.
Шаг 2: Затем мы должны загрузить и установить программное обеспечение загрузчика STM Flash, чтобы загрузить загруженный файл bin в STM32. Щелкните по этой ссылке, чтобы перейти на веб-сайт ST, прокрутите вниз и нажмите «Загрузить программное обеспечение».
Шаг 3: Чтобы загрузить программное обеспечение, вы должны ввести свой адрес электронной почты, и ссылка для загрузки будет отправлена на ваш адрес электронной почты. Затем перейдите по ссылке обратно на веб-сайт и снова нажмите «Получить программное обеспечение», и начнется загрузка. Да, это немного расстраивает, но это то, как это нужно делать. Не забудьте проверить папку со спамом на наличие электронного письма, иногда электронное письмо приходит через пару минут.
Шаг 4: После загрузки установите программное обеспечение, убедитесь, что ваша плата STM32 подключена к вашему компьютеру через плату FTDI, а затем запустите программное обеспечение. Программа автоматически обнаружит COM-порт, если не использует диспетчер устройств, и убедитесь, что вы выбрали правильный номер COM-порта. В моем случае это COM4. Оставьте остальные настройки, как показано ниже.
Шаг 5: Дважды нажмите кнопку «Далее», и программа снова автоматически обнаружит сведения о плате и отобразит их, как показано ниже. Мы используем плату STM32F1 с флэш-памятью 128 КБ.
Шаг 6: На следующем шаге выберите «Загрузить на устройство», перейдите в папку, в которую мы загрузили наш bin-файл на шаге 1, и выберите его. Нажмите "Далее".
Шаг 7: Программное обеспечение загрузит некоторые необходимые файлы, как показано ниже, а затем начнет процесс прошивки.
Шаг 8: После успешного завершения перепрошивки мы увидим экран, показанный ниже. Нажмите закрыть и выйдите из приложения. Мы успешно прошили плату STM32 загрузчиком Arduino. Теперь нам нужно подготовить IDE Arduino и установить драйверы, прежде чем мы сможем программировать плату STM32.
Подготовка IDE Arduino и установка драйверов
Выполните следующие шаги, чтобы загрузить и подготовить IDE Arduino для использования с платой разработки STM 32.
Шаг 1: - Если вы еще не установили Arduino IDE, загрузите и установите ее по этой ссылке. Убедитесь, что вы выбрали правильную операционную систему.
Шаг 2: - После установки Arduino IDE откройте и загрузите необходимые пакеты для платы STM32. Это можно сделать, выбрав Файл -> Настройки .
Шаг 3: - При нажатии на «Настройки» откроется диалоговое окно, показанное ниже. В дополнительном текстовом поле Boards Manager URL вставьте ссылку ниже
dan.drown.org/stm32duino/package_STM32duino_index.json
и нажмите ОК.
Шаг 4: - Теперь перейдите в Tool -> Boards -> Board Manager . Откроется диалоговое окно «Диспетчер плат», найдите «STM32F1» и установите появившийся пакет.
Шаг 5: После установки пакета перейдите в C: \ Program Files (x86) Arduino \ hardware \ Arduino_STM32-master \ drivers \ win, где вы найдете install_drivers.bat и install_STM_COM_drivers.bat .
Шаг 6: Щелкните оба файла bat и установите драйверы. Вы получите экран DOS, как показано ниже.
Теперь IDE Arduino подготовлена для программирования платы разработки STM32 (Blue Pill), и драйверы также установлены.
Программирование STM32 (Blue Pill) напрямую через порт USB
Удалите плату FTDI и все существующие соединения с вашего STM32. Просто используйте порт micro-USB на плате STM32, чтобы подключить его к компьютеру, как показано ниже. Убедитесь, что контакт перемычки 0 снова установлен в положение 0 (рабочий режим). В дальнейшем нам не нужно больше переключать перемычку для загрузки и запуска программ.
Теперь ваш компьютер должен обнаружить доску. Подождите некоторое время, если вы увидите, что устанавливаются дополнительные драйверы. Затем войдите в диспетчер устройств и проверьте, обнаружена ли ваша плата STM32 в разделе COM и порт, как показано ниже. Мой подключен к COM8 с именем Maple Mini.
Перейдите в Инструменты и прокрутите вниз, чтобы найти серию Generic STM32F103C, как показано ниже. Затем убедитесь, что используется тип Flash 64 КБ , частота процессора 72 МГц, и измените метод загрузки на загрузчик STM32duino . Также выберите правильный COM-порт в соответствии с тем, который указан в диспетчере устройств.
После внесения всех изменений проверьте правый нижний угол IDE Arduino, и вы должны заметить, что устанавливается следующий параметр. Моя плата STM32 подключена к COM8, но ваша может отличаться
Теперь среда Arduino IDE готова к программированию плат разработки STM 32 Blue Pill. Давайте загрузим программу Sample Blink из Arduino IDE на плату STM32 Blue Pill, чтобы убедиться, что все работает правильно. Пример программы можно найти на
В открывшемся примере программы мы должны внести небольшое изменение. По умолчанию программа будет написана для PB1, но на нашей плате встроенный светодиод подключен к PC13, поэтому замените все PB1 на PC13, и мы готовы продолжить. Полный пример программы, которая модифицируется также можно найти в нижней части этой страницы.
Код внутри только функции цикла показан ниже, где мы можем заметить, что вывод PC13 остается ВЫСОКИМ (включен) в течение 1000 миллисекунд, а затем выключается в течение еще 1000 миллисекунд, и это происходит бесконечное количество раз, поскольку он находится в функция цикла . Таким образом, светодиод мигает с интервалом в 1000 миллисекунд.
digitalWrite (PC13, ВЫСОКИЙ); // включаем светодиод (HIGH - уровень напряжения) delay (1000); // ждем второй digitalWrite (PC13, LOW); // выключаем светодиод, делая задержку низкого напряжения (1000); // ждем секунду
Нажмите кнопку загрузки в Arduino IDE, и ваша программа должна быть скомпилирована и загружена. Если все сработало, как ожидалось, на консоли Arduino IDE вы должны увидеть следующее.
Если программа была загружена успешно, вы должны увидеть, как зеленый светодиод будет мигать с интервалом в 1 секунду, как показано на видео ниже. Вы также можете повозиться с программой, чтобы увеличить или уменьшить задержку. Теперь вы можете начать использовать плату разработки STM32 (Blue Pill), как и любые другие платы Arduino, то есть вам больше не нужно изменять положение перемычек или использовать внешнее оборудование для загрузки и тестирования программ.
Надеюсь, вы поняли руководство и сочли полезным приступить к работе с платой STM32. Если у вас есть какие-либо проблемы, оставьте их в разделе комментариев, также сообщите мне, какие проекты мы должны попробовать с этой платой STM32 в будущем.