Найти тему
DGO шпаргалка

Zephyr RTOS в PlatformIO. Эксперименты. Часть 1. UART

Оглавление

Всем привет! Решил я, что пора осваивать что-то масштабное! Выбор пал на операционную систему реального времени со сладким названием. Почему бы и нет. Есть у меня отладочная плата на STM32F407 с довольно большим количеством периферии, да ещё и сенсорным экраном! Попробуем нырнуть в омут с головой и практически без подготовки.

Всё, что нужно.
Всё, что нужно.

Понадобится для того, чтобы всё попробовать -три вещи.

1. Сама отладка Black STM32F407VE

2. Программатор ST-LINK

3. USB-TTL преобразователь (У меня он -часть программатора для китайских микроконтроллеров CH32V)

Приступим!

Так нейросеть видит "электрический зефир", ну да ладно.
Так нейросеть видит "электрический зефир", ну да ладно.

На официальном сайте есть достаточно подробная инструкция как начать разработку в предлагаемом авторами варианте и внушительный список поддерживаемых плат. Моя там есть, но я пойду другим путем! Используя дополнение PlatformIO для VSCode.

Открываем(устанавливаем) VScode, устанавливаем дополнение PlatformIO и на домашней странице дополнения создаем новый проект.

Диалоговое окно домашней страницы PlatformIO
Диалоговое окно домашней страницы PlatformIO

Нажимаем "New Project"

Окно создания нового проекта в Platformio
Окно создания нового проекта в Platformio

Ждем примерно три тысячи лет

Очень долго что-то качается и ставится.
Очень долго что-то качается и ставится.

И всё готово! Перед нами в папке src нас встречает практически пустой файл main.c

main.c
main.c

Нужно что-то с этим сделать!

Добавим в блок main() вывод в порт

printk("Hello Zephyr! %s\n", CONFIG_BOARD);//вывод в порт приветствия и названия платы.

Теперь это нужно как-то прошить в микроконтроллер. Я использую китайский ST-link и должен сообщить об этом системе.

Скриншот рабочего окна PlatformIO
Скриншот рабочего окна PlatformIO

Добавляем строку upload_protocol = stlink, жмем галочку в правом верхнем углу, ждем ещё полторы тысячи лет и проект готов к загрузке в плату.

Гребенка на отладочной плате передняя.
Гребенка на отладочной плате передняя.

ST-link к плате подключается согласно этой схеме. Питание 3,3 вольта нужно подключить к гребенке на плате с соответствующим обозначением. Так же необходимо поставить перемычку с пина BT0 на плюс 3,3 вольта.

Готово! Загружаем!

Для загрузки в левом нижнем углу есть стрелочка. Всё собирается и загружается в плату.

Но где смотреть вывод? Мы же не указывали какой UART из кучи доступных будет использован! Идем в документацию к плате.

PinOUTs
PinOUTs

UART_1 настроен по умолчанию и удобно выведен отдельной гребенкой на плате. Если питание брать так же от программатора, то переходник USB-UART можно подключить только пином RX к TX на переходнике и землю к любому свободному пину с надписью GND. Вынимаем перемычку, открываем любой монитор порта, мне почему-то нравится из Arduino IDE, настраиваем порт, скорость и жмем кнопку перезагрузки на плате.

Сообщение из порта.
Сообщение из порта.

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

В следующей части попытаемся эту информацию убрать и поменять порт на UART_2, а это не так очевидно, как можно привыкнуть в среде Arduino. Всем спасибо за внимание! Как всегда буду рад комментариям.