Данная статья написана не для бывалых и бородатых, а для маленьких и зеленых, которые не могут попасть в рот ложкой с первого раза, в целом как и автор 🙂
что имеем для работы:
-
оригинальный STlink-v3minie
-
отладочная плата от WeAct с камнем stm32g474
-
жмень проводов
Что хотим получить: вывод осмысленных сообщений себе в консоль на устройство, где пишется код
Начнем по порядку: сначала подключим STlink к отладочной плате. Есть две необходимые схемы подключения.
Первой схемой будет схема »эхо» — она используется для проверки работоспособности самого STlink и верности конфига терминала.
Второй схемой будет «боевая» схема — схема которой мы уже будем отлаживать плату.
windows
Cтавим драйвера на свою печку. Получить драйвера можно с офф сайта ST, но только с таблэткой в виде VPN и правильного региона ST аккаунта.
После чего, как ни странно устанавливаем драйвера. Не вижу смысла подробно описывать, куда жать, но скриншотики пусть будут.

Отлично, с драйверами мы разделались, теперь установим то, чем будем слушать тот бред, что будет нам выдавать контроллер. Как самый распространенный, пожалуй, вариант, будем юзать PuTTY. Соответственно скачиваем, устанавливаем:
Установили, отлично. Теперь можно слушать COM Port нашего STLink. Что для этого нужно? Для начала удостоверимся в работоспособности самого STLink. Подключим все по схеме «эхо» и запустим PUTTY
После откроется терминал, в котором будет печататься то, что вы набираете на клавиатуре, это «эхо», ваш STlink живой, ура. Если символы не печатаются — проверьте качество контакта между RX и TX пинами отладчика.

linux
Я сижу на Arch linux, поэтому установку показываю именно для этого дистрибутива.
Устанавливаем драйвера и утилиты:
pacman -S stsw-link007
pacman -S screen
Выводить данные будем через утилиту screen. Почему? Потому-что.
Подключаем все по схеме «эхо».
Чтобы узнать какой порт занимает наш STlink используем утилиту ls:
ls /dev/tty*
serial device в linux имеют названия вида ttyACMх, нам выпало ttyACM0.

теперь воспользуемся утилитой screen, установленной ранее:
sudo screen /dev/ttyACM0 9600 # 9600 - это скорость в бодах, выставляется # в соответсвии с выбранной вами скоростью в настройках uart, для проверки работы # ставим любое значение.
После ввода команды в терминале можно будет печатать символы в терминале. Это наше «эхо». Если символы не печатаются, то проверьте качество контакта между пинами RX и TX на вашем STlink
Пример конфига для stm32
PS
PS. конфиг не эталонный, так делать возможно даже нельзя, но у нас задача какая? Правильно чтобы работало, поэтому делаем так что-бы работало! Поэтому приступим.
открываем CubeMX и начинаем конфигурировать:
тут спрятаны скрины конфига, чтобы не засорять





Пин LED — это не обязательная штука, автору просто нравится мигающие диодики).
Теперь наш камень сконфигурирован, ура! Осталось написать код, чтобы g474 начал отдавать байтики:
int main(void) { uint8_t message[] = "message from MCU\r\n"; // сообщение которое мы хотим вывести uint8_t messageSize = sizeof(message) - 1; //размер сообщения которое мы хотим вывести //этот блок кода нам генерирует CubeMX, так что не обращаем на него внимание HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART2_UART_Init(); // тут уже пишем наши магические буковы while (1) { HAL_UART_Transmit(&huart2, message, messageSize, 1000); //отправка сообщений в HAL_Delay(2000); HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); } }
собираем, заливаем, проверяем иии…
Неожиданно, но и такое тоже может быть, что произошло? Я подключал свою g474 c помощью китайского ЛБП в хруще, а тут, так получилось, нет нормальной земли и бывают соседи, что любят заземляться на батареи, отсюда и шумная земля. Что делать? Я решил эту проблему через запитку отладочной платы от ноута… Всё, проблема решена))
Подключаем правильно, перезапускаем утилиту ииииии… вжух:
Наш контролер умеет писать сообщение вам в терминал, вот теперь ура!
На этом всё. Пока.

Под редакцией @midlifecriz
ссылка на оригинал статьи https://habr.com/ru/articles/930296/
Добавить комментарий