Всем привет! Решил я, что пора осваивать что-то масштабное! Выбор пал на операционную систему реального времени со сладким названием. Почему бы и нет. Есть у меня отладочная плата на STM32F407 с довольно большим количеством периферии, да ещё и сенсорным экраном! Попробуем нырнуть в омут с головой и практически без подготовки.
Понадобится для того, чтобы всё попробовать -три вещи.
1. Сама отладка Black STM32F407VE
2. Программатор ST-LINK
3. USB-TTL преобразователь (У меня он -часть программатора для китайских микроконтроллеров CH32V)
Приступим!
На официальном сайте есть достаточно подробная инструкция как начать разработку в предлагаемом авторами варианте и внушительный список поддерживаемых плат. Моя там есть, но я пойду другим путем! Используя дополнение PlatformIO для VSCode.
Открываем(устанавливаем) VScode, устанавливаем дополнение PlatformIO и на домашней странице дополнения создаем новый проект.
Нажимаем "New Project"
Ждем примерно три тысячи лет
И всё готово! Перед нами в папке src нас встречает практически пустой файл main.c
Нужно что-то с этим сделать!
Добавим в блок main() вывод в порт
printk("Hello Zephyr! %s\n", CONFIG_BOARD);//вывод в порт приветствия и названия платы.
Теперь это нужно как-то прошить в микроконтроллер. Я использую китайский ST-link и должен сообщить об этом системе.
Добавляем строку upload_protocol = stlink, жмем галочку в правом верхнем углу, ждем ещё полторы тысячи лет и проект готов к загрузке в плату.
ST-link к плате подключается согласно этой схеме. Питание 3,3 вольта нужно подключить к гребенке на плате с соответствующим обозначением. Так же необходимо поставить перемычку с пина BT0 на плюс 3,3 вольта.
Готово! Загружаем!
Для загрузки в левом нижнем углу есть стрелочка. Всё собирается и загружается в плату.
Но где смотреть вывод? Мы же не указывали какой UART из кучи доступных будет использован! Идем в документацию к плате.
UART_1 настроен по умолчанию и удобно выведен отдельной гребенкой на плате. Если питание брать так же от программатора, то переходник USB-UART можно подключить только пином RX к TX на переходнике и землю к любому свободному пину с надписью GND. Вынимаем перемычку, открываем любой монитор порта, мне почему-то нравится из Arduino IDE, настраиваем порт, скорость и жмем кнопку перезагрузки на плате.
Получаем, что и хотели. Плюс немного информации от самого зефира. Возможно она будет мешать при дальнейших экспериментах.
В следующей части попытаемся эту информацию убрать и поменять порт на UART_2, а это не так очевидно, как можно привыкнуть в среде Arduino. Всем спасибо за внимание! Как всегда буду рад комментариям.