Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2741
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

Управление GPIO

172

6.3. Управление GPIO

CubeHAL предоставляет четыре процедуры манипуляции для чтения, изменения и блокировки состояния I/O. Чтобы считать состояние I/O, мы можем использовать функцию:

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

которая принимает дескриптор порта GPIO и номер вывода. Она возвращает GPIO_PIN_RESET, когда на выводе низкий уровень сигнала, или GPIO_PIN_SET – когда высокий. И наоборот, чтобы изменить состояние вывода, у нас есть функция:

void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState)

которая принимает дескриптор порта GPIO, номер вывода и желаемое состояние. Если мы хотим просто инвертировать состояние вывода, мы можем использовать эту удобную процедуру:

void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin).

Наконец, одной из особенностей портов GPIO является возможность заблокировать конфигурацию их вводов/выводов. Любая последующая попытка изменить их конфигурацию будет неудачной, пока не произойдет сброс. Чтобы заблокировать конфигурацию вывода, мы можем использовать эту процедуру:

HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin).

6.4. Деинициализация GPIO

Можно установить вывод GPIO в состояние по умолчанию (то есть в режиме плавающего входа). Функция:

void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin)

выполняет эту работу автоматически для нас.

Данная функция очень удобна, если нам больше не нужна какая-либо периферия или чтобы избежать потерь энергии при переходе процессора в спящий режим.

Управление GPIO

173

Интермеццо Eclipse

Интерфейс Eclipse можно значительно персонализировать, устанавливая пользовательские темы. По существу, тема позволяет изменить внешний вид пользовательского интерфейса Eclipse. Это может показаться несущественной функцией, но в настоящее время многие программисты предпочитают настраивать цвета, тип и размер шрифтов и прочее в своей любимой среде разработки. Это одна из причин успеха некоторых минимальных, но при этом очень персонализируемых редакторов исходного кода, таких как TextMate и Sublime Text.

Для Eclipse доступно несколько пакетов тем, но настоятельно рекомендуется установить плагин, который автоматически устанавливает несколько других плагинов, полезных для данной тематики. Его название – Color IDE Pack, и он доступен в Eclipse Marketplacea. Наиболее важные устанавливаемые плагины:

Eclipse Color Theme, который является «торговой площадкой» сотен тем

Eclipse.

Eclipse Moonrise UI Theme, который считается лучшей полностью черной цветовой темой Андреа Гуаринони (Andrea Guarinoni).

Jeeeyul’s Eclipse Themes, который содержит цветовые темы и инструменты настройки цвета от Джиула Ли (Jeeeyul Lee).

Автор книги предпочитает смешанный подход между полностью темной и полностью светлой темами: он предпочитает темную тему для редактора исходного кода и белый фон для других частей IDE, как показано ниже.

a http://marketplace.eclipse.org/content/color-ide-pack