STM32-логотип

Минимальная плата разработки системы STM32F103C8T6

STM32F103C8T6-Минимальная плата для разработки системы-продукт

Информация о продукте

Модуль платы разработки минимальной системы STM32F103C8T6 ARM STM32 представляет собой плату разработки, основанную на микроконтроллере STM32F103C8T6. Он предназначен для программирования с использованием Arduino IDE и совместим с различными клонами, вариациями Arduino и платами сторонних производителей, такими как ESP32 и ESP8266.

Плата, также известная как Blue Pill Board, работает на частоте примерно в 4.5 раза выше, чем Arduino UNO. Его можно использовать для различных проектов и подключать к периферийным устройствам, таким как TFT-дисплеи.

Необходимые компоненты для создания проектов с использованием этой платы включают плату STM32, программатор FTDI, цветной TFT-дисплей, кнопку, небольшой макет, провода, блок питания (дополнительно для автономного режима) и преобразователь USB в последовательный порт.

Схема

Чтобы подключить плату STM32F1 к цветному TFT-дисплею на базе 1.8 ST7735 и кнопке, следуйте межконтактным соединениям, описанным на предоставленных схемах.

Настройка Arduino IDE для STM32.

  1. Откройте IDE Ардуино.
  2. Перейдите в Инструменты -> Доска -> Менеджер досок.
  3. В диалоговом окне со строкой поиска найдите «STM32F1» и установите соответствующий пакет.
  4. Дождитесь завершения процедуры установки.
  5. После установки плата STM32 должна быть доступна для выбора в списке плат Arduino IDE.

Программирование плат STM32 с помощью Arduino IDE.

С момента своего создания Arduino IDE продемонстрировала стремление поддерживать все виды платформ: от клонов Arduino и вариаций разных производителей до плат сторонних производителей, таких как ESP32 и ESp8266. По мере того, как все больше людей знакомятся с IDE, они начинают поддерживать все больше плат, не основанных на чипах ATMEL, и в сегодняшнем уроке мы рассмотрим одну из таких плат. Мы рассмотрим, как программировать плату разработки STM32F32C103T8 на базе STM6 с помощью Arduino IDE.

STM32F103C8T6-Minimum-System-Development-Board-fig-1

Плата STM32, которая будет использоваться в этом руководстве, — это не что иное, как плата разработки STM32F103 на базе чипа STM8F6C32T1, обычно называемая «Blue Pill» в соответствии с синим цветом ее печатной платы. Blue Pill оснащен мощным 32-битным процессором ARM STM32F103C8T6 с тактовой частотой 72 МГц. Плата работает на логических уровнях 3.3 В, но ее контакты GPIO были протестированы на устойчивость к 5 В. Хотя он не оснащен Wi-Fi или Bluetooth, как варианты ESP32 и Arduino, он предлагает 20 КБ ОЗУ и 64 КБ флэш-памяти, что делает его подходящим для крупных проектов. Он также имеет 37 контактов GPIO, 10 из которых могут использоваться для аналоговых датчиков, поскольку у них включен АЦП, а также другие, которые поддерживают SPI, I2C, CAN, UART и DMA. Вы согласитесь со мной, что для платы стоимостью около 3 долларов это впечатляющие характеристики. Обобщенная версия этих спецификаций по сравнению с версией Arduino Uno показана на изображении ниже.

STM32F103C8T6-Minimum-System-Development-Board-fig-2

Судя по приведенным выше характеристикам, в сегодняшнем уроке частота, на которой работает Blue Pill, примерно в 4.5 раза выше, чем у Arduino UNO.ampГоворя о том, как использовать плату STM32F1, мы подключим ее к 1.44-дюймовому TFT-дисплею и запрограммируем ее для расчета константы «Пи». Мы отметим, сколько времени потребовалось плате для получения значения, и сравним его со временем, которое требуется Arduino Uno для выполнения той же задачи.

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

Для создания этого проекта необходимы следующие компоненты;

  • Плата STM32
  • Программист ФТДИ
  • Цветной TFT
  • Кнопка нажатия
  • Маленький макет
  • Провода
  • Внешний аккумулятор
  • Преобразователь USB в последовательный порт

Как обычно, все компоненты, использованные в этом уроке, можно купить по прикрепленным ссылкам. Однако банк питания необходим только в том случае, если вы хотите развернуть проект в автономном режиме.

Схема

  • Как упоминалось ранее, мы подключим плату STM32F1 к 1.8-дюймовому цветному TFT-дисплею на базе ST7735 вместе с кнопкой.
  • Кнопка будет использоваться для указания плате начать расчет.
  • Соедините компоненты, как показано на схеме ниже.

STM32F103C8T6-Minimum-System-Development-Board-fig-3

Чтобы упростить копирование соединений, ниже описаны контакты между выводами STM32 и дисплеем.

СТМ32 – СТ7735

STM32F103C8T6-Minimum-System-Development-Board-fig-4

Еще раз проверьте соединения, чтобы убедиться, что все в порядке, поскольку это может оказаться немного сложнее. После этого мы приступили к настройке платы STM32 для программирования с помощью Arduino IDE.

Настройка Arduino IDE для STM32.

  • Как и в случае с большинством плат, созданных не Arduino, необходимо выполнить небольшую настройку, прежде чем плату можно будет использовать с Arduino IDE.
  • Это предполагает установку платы. file либо через диспетчер плат Arduino, либо загрузив из Интернета и скопировав files в папку оборудования.
  • Маршрут Board Manager является менее утомительным, и, поскольку STM32F1 входит в число перечисленных плат, мы пойдем по этому пути. Начните с добавления ссылки на плату STM32 в списки предпочтений Arduino.
  • Перейти к File -> Настройки, затем введите это URL ( http://dan.drown.org/stm32duino/package_STM32duino_index.json ) в поле, как указано ниже, и нажмите «ОК».

STM32F103C8T6-Minimum-System-Development-Board-fig-5

  • Теперь перейдите в Инструменты -> Доска -> Менеджер досок, откроется диалоговое окно с панелью поиска. Искать STM32F1 и установите соответствующий пакет.

STM32F103C8T6-Minimum-System-Development-Board-fig-6

  • Процедура установки займет несколько секунд. После этого плата должна быть доступна для выбора в списке плат Arduino IDE.

Код

  • Код будет написан так же, как и любой другой скетч для проекта Arduino, с той лишь разницей, что это способ ссылки на контакты.
  • Чтобы иметь возможность легко разработать код для этого проекта, мы будем использовать две библиотеки, которые являются модификациями стандартных библиотек Arduino, чтобы сделать их совместимыми с STM32.
  • Мы будем использовать модифицированную версию библиотек Adafruit GFX и Adafruit ST7735.
  • Обе библиотеки можно скачать по прикрепленным к ним ссылкам. Как обычно, я сделаю небольшой разбор кода.
  • Мы начинаем код с импорта двух библиотек, которые будем использовать.

STM32F103C8T6-Minimum-System-Development-Board-fig-7

  • Далее мы определяем контакты STM32, к которым подключены контакты CS, RST и DC ЖК-дисплея.

STM32F103C8T6-Minimum-System-Development-Board-fig-8

  • Далее мы создаем несколько определений цветов, чтобы позже в коде можно было легко использовать цвета по их именам, а не по их шестнадцатеричным значениям.

STM32F103C8T6-Minimum-System-Development-Board-fig-9

  • Затем мы устанавливаем количество итераций, которые должна пройти плата, а также продолжительность обновления индикатора выполнения, который будет использоваться.

STM32F103C8T6-Minimum-System-Development-Board-fig-10

  • После этого мы создаем объект библиотеки ST7735, который будет использоваться для ссылки на дисплей на протяжении всего проекта.
  • Мы также указываем вывод STM32, к которому подключена кнопка, и создаем переменную для хранения ее состояния.

STM32F103C8T6-Minimum-System-Development-Board-fig-11

  • После этого мы переходим к функции void setup().
  • Мы начинаем с установки pinMode() контакта, к которому подключена кнопка, активируя внутренний подтягивающий резистор на выводе, поскольку кнопка при нажатии соединяется с землей.

STM32F103C8T6-Minimum-System-Development-Board-fig-12

  • Далее мы инициализируем последовательную связь и экран, устанавливая черный фон дисплея и вызывая функцию print() для отображения интерфейса.

STM32F103C8T6-Minimum-System-Development-Board-fig-13

  • Далее идет функция voidloop(). Функция цикла void довольно проста и коротка благодаря использованию библиотек/функций.
  • Начнем с считывания состояния кнопки. Если кнопка была нажата, мы удаляем текущее сообщение на экране с помощью функции removePressKeyText() и рисуем изменяющийся индикатор выполнения с помощью функции drawBar().
  • Затем мы вызываем функцию запуска расчета, чтобы получить и отобразить значение Пи вместе со временем, затраченным на его вычисление.

STM32F103C8T6-Minimum-System-Development-Board-fig-14

  • Если кнопка не нажата, устройство остается в режиме ожидания, а на экране требуется нажать клавишу для взаимодействия с ним.

STM32F103C8T6-Minimum-System-Development-Board-fig-15

  • Наконец, в конце цикла вставляется задержка, чтобы дать немного времени перед созданием «циклов».

STM32F103C8T6-Minimum-System-Development-Board-fig-16

  • Оставшаяся часть кода — это функции, вызываемые для решения задач от рисования столбика до вычисления числа Пи.
  • Большинство этих функций описано в нескольких других руководствах, посвященных использованию дисплея ST7735.

STM32F103C8T6-Minimum-System-Development-Board-fig-17STM32F103C8T6-Minimum-System-Development-Board-fig-18STM32F103C8T6-Minimum-System-Development-Board-fig-19STM32F103C8T6-Minimum-System-Development-Board-fig-20STM32F103C8T6-Minimum-System-Development-Board-fig-21STM32F103C8T6-Minimum-System-Development-Board-fig-22

  • Полный код проекта доступен ниже и прикреплен в разделе загрузки.

STM32F103C8T6-Minimum-System-Development-Board-fig-23STM32F103C8T6-Minimum-System-Development-Board-fig-24 STM32F103C8T6-Minimum-System-Development-Board-fig-25 STM32F103C8T6-Minimum-System-Development-Board-fig-26 STM32F103C8T6-Minimum-System-Development-Board-fig-27 STM32F103C8T6-Minimum-System-Development-Board-fig-28 STM32F103C8T6-Minimum-System-Development-Board-fig-29 STM32F103C8T6-Minimum-System-Development-Board-fig-30 STM32F103C8T6-Minimum-System-Development-Board-fig-31 STM32F103C8T6-Minimum-System-Development-Board-fig-32 STM32F103C8T6-Minimum-System-Development-Board-fig-33 STM32F103C8T6-Minimum-System-Development-Board-fig-34

Загрузка кода в STM32

  • Загрузка эскизов в STM32f1 немного сложнее по сравнению со стандартными платами, совместимыми с Arduino. Чтобы загрузить код на плату, нам понадобится преобразователь USB-to-Serial на базе FTDI.
  • Подключите преобразователь USB-последовательный порт к STM32, как показано на схеме ниже.

STM32F103C8T6-Minimum-System-Development-Board-fig-35

Вот схема подключения по контактам

ФТДИ — STM32

  • После этого мы меняем положение перемычки состояния платы на позицию один (как показано на рисунке ниже), чтобы перевести плату в режим программирования.
  • После этого нажмите кнопку сброса на плате один раз, и мы готовы загрузить код.

STM32F103C8T6-Minimum-System-Development-Board-fig-37

  • На компьютере убедитесь, что вы выбрали «Общая плата STM32F103C» и выберите серийный номер в качестве метода загрузки, после чего вы можете нажать кнопку загрузки.

STM32F103C8T6-Minimum-System-Development-Board-fig-38

  • После завершения загрузки установите перемычку состояния в положение «О» Это переведет плату в режим «запуска», и теперь она должна начать работать на основе загруженного кода.
  • На этом этапе вы можете отключить FTDI и подать питание на плату через USB. Если код не запускается после подачи питания, убедитесь, что вы правильно восстановили перемычку и повторно подали питание на плату.

Демо

  • После завершения кода следуйте описанному выше процессу загрузки, чтобы загрузить код в вашу установку.
  • Вы должны увидеть экран, как показано на рисунке ниже.

STM32F103C8T6-Minimum-System-Development-Board-fig-39

  • Нажмите кнопку, чтобы начать расчет. Вы должны увидеть, как индикатор выполнения постепенно скользит до конца.
  • В конце процесса отображается значение Пи и время, затраченное на расчет.

STM32F103C8T6-Minimum-System-Development-Board-fig-40

  • Тот же код реализован на Arduino Uno. Результат показан на изображении ниже.

STM32F103C8T6-Minimum-System-Development-Board-fig-41

  • Сравнивая эти два значения, мы видим, что «Blue Pill» более чем в 7 раз быстрее, чем Arduino Uno.
  • Это делает его идеальным для проектов, требующих тяжелой обработки и ограничений по времени.
  • Небольшой размер Blue Pill также является преимуществом.tagЗдесь он лишь немного больше, чем Arduino Nano, и его можно использовать там, где Nano не будет достаточно быстрым.

Документы/Ресурсы

STM32 STM32F103C8T6 Минимальная плата разработки системы [pdf] Руководство пользователя
STM32F103C8T6 Минимальная системная плата для разработки, STM32F103C8T6, Минимальная системная плата для разработки, Плата для разработки системы, Макетная плата, Плата

Ссылки

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

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