Конфигуратор

Настройка входов/выходов, таймеров и прочей периферии на stm32 дело непростое. Чтобы упросить процесс разработки, в STMicroelectronics сделали специальный инструмент для настройки, который называется SMT32CubeMX. Теперь этот инструмент встроен в CubeIDE и мы будем им пользоваться для этого и последующих уроков.

Как и у прочих микроконтроллеров, контакты в STM32 нумеруются по схеме: P[порт][индекс]

Например, PA10 — это контакт с индексом 10 в порту A. Именно к этому контакту мы и подключим светодиод. Воспользуемся простейшей схемой с резистором на 200 Ом, такой же, как в уроке про светодиод на Ардуино.

Настройка контакта в режим вывода

Настроим в конфигураторе контакт PA10 на выход (в Arduino IDE за это отвечает функция pinMode). Жмём левую кнопку мыши на контакте и открываем выпадающее меню с разными вариантами использования ножки.

Выбираем GPIO_Output.

Контакт подсветится зелёным и получит подпись GPIO_Output. Теперь назначим псевдоним для этого контакта. На этой же вкладке, в правом меню, раскроем пункт System core / GPIO.

Этот раздел меню отвечает за настройку параметров контактов общего назначения — GPIO, которые мы ранее активировали. Можно назначать псевдонимы, прерывания, устанавливать подтяжки к питанию и земле, и прочее. Выберем наш контакт PA10.

В поле User Label напишем свой псевдоним, пусть этот будет слово LED. Псевдоним нужен сугубо для удобства. Теперь нам нет необходимости помнить ни порт, ни номер — будем в программе использовать слово LED.

Настройка контактов программатора

Есть ещё одна настройка, которая поможет нам в дальнейшей работе . Если этого не сделать, то после первой прошивки программатором ST-Link, микроконтроллер перестанет прошиваться. Это, конечно, можно будет исправить, но лучше заранее предохраниться.

Зайдем в раздел SYS и в поле Debug выберем Serial Wire.

Теперь контакты PA13 и PA14 будут зарезервированы за программатором. Более подробно про этот нюанс и про то, как освободить эти ножки для других функций можно будет прочитать в статье про STM32F103.

Следующий шаг — написание кода программы.


Изменено:

STM32 и CubeIDE: Мигаем светодиодом: 7 комментариев

  1. выдает ошибку ../Core/Src/main.c:100:22: error: ‘LED_GPIO_Port’ undeclared (first use in this function); did you mean ‘MX_GPIO_Init’?
    такого характера
    подскажите что это может быть?

    • Компилятор говорит что не знает то такое LED_GPIO_Port и предлагает вместо этого функцию MX_GPIO_Init. Можете показать весь main.c?

  2. Сделал все по вашему уроку, проект не компилируется. ‘LED_GPIO_Port’ undeclared (first use in this function)
    ‘LED_Pin’ undeclared (first use in this function) main.c /led_blink/Core/Src line 97 C/C++ Problem. Так и не понял в чем проблема, буду дальше разбираться.

  3. Разобрался. Нужно было на led_blink.ioc нажать правой кнопкой мыши и выбрать Generate Code.

  4. Уважаемый, подскажите… Сделал, всё собралось, но есть одна странность — почему-то светодиод на таблетке молчит, но вот на программаторе мигает. Как этот шайтанамана лечится?

Добавить комментарий

Ваш адрес email не будет опубликован.