Описание регистров выводов общего назначения

Для конфигурирования портов и работы с ними на каждый порт выделено по семь регистров:

· GPIOx_CRL, GPIOx_CRH - задают режимы работы каждого бита порта;

· GPIOx_IDR - регистр, позволяющий читать физическое состояние выводов порта x;

· GPIOx_ODR - позволяет записать данные непосредственно в порт;

· GPIOx_BSRR - для сброса и установки отдельных битов порта;

· GPIOx_BRR - для сброса битов порта;

· GPIOx_LCKR - для блокировки выбранной конфигурации

где х - это имя порта (A,B,C,D,E,F или G).

Рассмотрим подробнее особенности каждого регистра._CRL, GPIOx_CRH - 32-х разрядные регистры, задающие режим работы каждого вывода порта.

Структура регистра GPIOx_CRL представлена на рисунке 10.

Рисунок 10 - Структура регистра GPIOx_CRL

Структура регистра GPIOx_CRH представлена на рисунке 11.

Рисунок 11 - Структура регистра GPIOx_CRH

Для того, чтобы задать режим одного вывода, необходимо четыре разряда. Так как порт имеет 16 разрядов, для конфигурации порта необходимо 64 разряда. Регистры микроконтроллера имею разрядность равную 32, поэтому для всего порта необходимо два конфигурационных регистра - GPIOx_CRL и GPIOx_CRH.

Регистр GPIOx_CRL конфигурирует первую половину выводов порта (разряды 0…7).

Регистр GPIOx_CRH конфигурирует вторую половину выводов порта (разряды 8…15).

Для конфигурирования одного вывода порта необходимо 4 разряда.

Назначение этих разрядов следующее:

· биты 0,1 (MODE) определяют направление вывода и скорость обмена в режиме выхода;

· биты 2,3 (CNF) задают конфигурацию выходного каскада.

Разряды MODE могут иметь следующее значение:

· MODE [1,0]=00 - вывод сконфигурирован как вход;

· MODE [1,0]=01 - вывод сконфигурирован как выход, максимальная скорость переключения - 10 MHz;

· MODE [1,0]=10 - вывод сконфигурирован как выход, максимальная скорость переключения - 2 MHz;

· MODE [1,0]=11 - вывод сконфигурирован как выход, максимальная скорость переключения - 50 MHz;

Если вывод сконфигурирован как вход, назначение разрядов CNF следующее:

· CNF[1,0]=00 - аналоговый вход;

· CNF[1,0]=01 - цифровой вход в третьем состоянии;

· CNF[1,0]=10 - цифровой вход с подтягивающим резистором ;

· CNF[1,0]=11 - зарезервировано

Если вывод сконфигурирован как выход, назначение разрядов CNF следующее:

· CNF[1,0]=00 - двухтактный выход общего назначения;

· CNF[1,0]=01 - выход общего назначения с открытым стоком;

· CNF[1,0]=10 - двухтактный выход с альтернативной функцией;

· CNF[1,0]=11 - выход с альтернативной функцией с открытым стоком

Следующим идет регистр GPIOx_IDR.

Он предназначен для чтения физического состояния порта. Этот регистр имеет 16 разрядов, каждый из которых соответствует выводу порта. Прочитав этот регистр, можем проанализировать состояние любого вывода порта.

Регистр GPIOx_ODR предназначен для непосредственной записи в порт. Он также 16-ти разрядный.

Следующий регистр - GPIOx_BSRR. Он предназначен для атомарного управления выходами. Его структура представлена на рисунке 12.

Рисунок 12 - Структура регистра GPIOx_BSRR

Как видно, этот регистр 32-х разрядный. Первые 16 разрядов используются для установки выходов порта, а старшие 16 разрядов - для сброса, т.е. можно манипулировать отдельными разрядами порта.

Перейти на страницу: 1 2

Еще статьи по теме

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

Разработка печатного узла электронной схемы усилителя
Проектирование современной радиоэлектронной аппаратуры невозможно без применения средств автоматизированного проектирования. Для проектирования узлов печатных плат (ПП) широкое распространение получила система Р-CAD, д ...

Главное меню

© 2020 / www.techsolid.ru