Порты ввода-вывода в STM32

В данной статье поговорим про порты ввода-вывода в STM32. Посмотрим как в микроконтроллерах STM32 настроить порты. Настройка портов STM32 будет проходить в CubeMX, а также будем использовать программную подсистему  HAL.

И так, после создания проекта в CubeMX, программисту необходимо настроить порты ввода вывода. Посмотрим на рисунок ниже. На нем представлен проект в CubeMx для отладочной платы STM32F407VET6. Нажав левой клавишей мыши на любом из портов, мы увидим выпадающий список. Это список всех функций, которые может выполнять данная ножка порта. На нашем рисунке это ножка PE2 порта PE.

ВНИМАНИЕ!
Так как микроконтроллер STM32 32-битный, то один порт содержит 16 ножек. Нумерация начинается с 0 (0..15).

Пример настройки порта в CubeMX микроконтроллера STM32

В данной статье нас интересуют такие функции как GPIO_Input и GPIO_Output. Т.е. порт на вход и порт на выход.

Если говорить простыми словами, то настроив порт на вход, мы говорим микроконтроллеру, что эта ножка будет принимать сигнал. Т.е. устанавливать на ножке 0 или 1 будет внешнее устройство или датчик. Когда мы настраиваем порт на выход, то это значит что установкой 0 или 1 на ножке, будет заниматься программист.

Настройка портов STM32

Настройка порта на Вход

Настроить порты STM32 очень простая задача, особенно если использовать HAL и кодогенератора CubeMX.  

Настроем ножку контроллера PE2 на вход. Для этого нажмем левой клавишей мышки на этой ножке и в выпадающем списке выберем GPIO_Input. Для более тонкой настройки необходимо перейти в меню System core -> GPIO.

В открывшемся меню настроек, мы увидим нашу ножку PE2, порта PE отмеченную как Input mode.

Настройка порта STM32 на вход

Так же можно установить подтяжку на этой ножке:

  1. Pull up подтяжка к 1. Это значит, что контроллер будет пытаться подтянуть уровень сигнала на ножке к уровню питания. Т.е к 1.
  2. Pull down – подтяжка к 0. Это значит, что контроллер будет пытаться подтянуть уровень сигнала к земле, т.е. к 0.
  3. No Pull up and No Pull down подтяжка не применяется. Это значит что контроллер будет считывать сигнал на данной ножке как есть. Т.е. если например сигнал не дотянет до уровня питания, то контроллер может прочитать его как 0.

Еще одной настройкой для порта, является настройка его имени User Label. Всегда удобно, особенно если проект большой давать ножкам порта значащие имена. Потом будет проще ориентироваться в коде и понимать, что куда подключено.

Внимание! Удобно именовать так: даем значащее имя и через знак подчеркивания указываем ножку на которую используем, например Led_PE4. Теперь мы знаем, что к ножке PE4 подключен светодиод.

Настройка порта на Выход

Настройка порта на выход аналогична как и настройка на вход описанная выше. Есть несколько отличий. Теперь, выбрав в настройках наша ножка отмечена как  OutputPushPull или  OutputPushDrain зависит от того что выберет пользователь.

Настройка порта STM32 на выход

GPIO output level – установка начального уровня на порте. Low – низкий уровень. High – высокий уровень.

GPIO mode -> Output Push Pull – активный режим, при котором транзисторы порта открываются или закрываются поочередно. Подключая выход к питанию или к земле. Одновременно они не включаются, так как это будет коротким замыканием

Output Push Drain – этот режим называют режимом с открытым стоком. В этом случае работает только один, нижний транзистор. Он замыкает выход на землю.

Вот и вся работа по настройке портов ввода вывода в STM32.

Документация

Где купить?

5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии