GPIOx_CRL - Port configuration register low
Регистр конфигурации младших портов ввода-вывода [0:7]
Смещение (Address offset): 0x00
Reset value: 0x4444'4444
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
CNF7[1:0] | MODE7[1:0] | CNF6[1:0] | MODE6[1:0] | ||||
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
CNF5[1:0] | MODE5[1:0] | CNF4[1:0] | MODE4[1:0] | ||||
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
CNF3[1:0] | MODE3[1:0] | CNF2[1:0] | MODE2[1:0] | ||||
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
CNF1[1:0] | MODE1[1:0] | CNF0[1:0] | MODE0[1:0] | ||||
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
Порт в режиме входа (MODE[1:0]=00):
00 : Analog mode - аналоговый вход
01 : Floating input - цифровой вход без подтягивающих резисторов (значение после сброса)
10 : Input with pull-up / pull-down - цифровой вход с подтягивающим резистором к питанию или к земле. Направление подтяжки входа к питанию или земле определяется соответствующим битом в реристре выходных данных GPIOx_ODR. Если ODRx=0 - подтяжка входа к земле (pull-down), если ODRx=1 - подтяжка входа к питанию (pull-up).
11 : Reserved - зарезервировано, не используется
Порт в режиме выхода (MODE[1:0]>00):
00 : Выход общего назначения в двухтактном (комплементарном) включении (push-pull)
01 : Выход общего назначения с открытым стоком (open-drain)
10 : Альтернативная функция в двухтактном (комплементарном) включении (push-pull)
11 : Альтернативная функция с открытым стоком (open-drain)
00 : режим входа (значение после сброса)
01 : режим выхода, максимальная частота выходного сигнала 10 МГц
10 : режим выхода, максимальная частота выходного сигнала 2 МГц
11 : режим выхода, максимальная частота выходного сигнала 50 МГц
Конфигурация порта | MODE[1:0] | CNF1 | CNF0 | ODRx | |
Выход общего назначения | Push-pull | > 00 | 0 | 0 | 1 или 0 |
Open-drain | 0 | 1 | 1 или 0 | ||
Выход альтернативной функции | Push-pull | 1 | 0 | не определено | |
Open-drain | 1 | 1 | не определено | ||
Вход | Analog | 00 | 0 | 0 | не определено |
Input floating | 0 | 1 | не определено | ||
Input pull-down | 1 | 0 | 0 | ||
Input pull-up | 1 |
/******************* Bit definition for GPIO_CRL register *******************/
#define GPIO_CRL_MODE ((uint32_t)0x33333333) /* Port x mode bits */
#define GPIO_CRL_MODE0 ((uint32_t)0x00000003) /* MODE0[1:0] bits (Port x mode bits, pin 0) */
#define GPIO_CRL_MODE0_0 ((uint32_t)0x00000001) /* Bit 0 */
#define GPIO_CRL_MODE0_1 ((uint32_t)0x00000002) /* Bit 1 */
#define GPIO_CRL_MODE1 ((uint32_t)0x00000030) /* MODE1[1:0] bits (Port x mode bits, pin 1) */
#define GPIO_CRL_MODE1_0 ((uint32_t)0x00000010) /* Bit 0 */
#define GPIO_CRL_MODE1_1 ((uint32_t)0x00000020) /* Bit 1 */
#define GPIO_CRL_MODE2 ((uint32_t)0x00000300) /* MODE2[1:0] bits (Port x mode bits, pin 2) */
#define GPIO_CRL_MODE2_0 ((uint32_t)0x00000100) /* Bit 0 */
#define GPIO_CRL_MODE2_1 ((uint32_t)0x00000200) /* Bit 1 */
#define GPIO_CRL_MODE3 ((uint32_t)0x00003000) /* MODE3[1:0] bits (Port x mode bits, pin 3) */
#define GPIO_CRL_MODE3_0 ((uint32_t)0x00001000) /* Bit 0 */
#define GPIO_CRL_MODE3_1 ((uint32_t)0x00002000) /* Bit 1 */
#define GPIO_CRL_MODE4 ((uint32_t)0x00030000) /* MODE4[1:0] bits (Port x mode bits, pin 4) */
#define GPIO_CRL_MODE4_0 ((uint32_t)0x00010000) /* Bit 0 */
#define GPIO_CRL_MODE4_1 ((uint32_t)0x00020000) /* Bit 1 */
#define GPIO_CRL_MODE5 ((uint32_t)0x00300000) /* MODE5[1:0] bits (Port x mode bits, pin 5) */
#define GPIO_CRL_MODE5_0 ((uint32_t)0x00100000) /* Bit 0 */
#define GPIO_CRL_MODE5_1 ((uint32_t)0x00200000) /* Bit 1 */
#define GPIO_CRL_MODE6 ((uint32_t)0x03000000) /* MODE6[1:0] bits (Port x mode bits, pin 6) */
#define GPIO_CRL_MODE6_0 ((uint32_t)0x01000000) /* Bit 0 */
#define GPIO_CRL_MODE6_1 ((uint32_t)0x02000000) /* Bit 1 */
#define GPIO_CRL_MODE7 ((uint32_t)0x30000000) /* MODE7[1:0] bits (Port x mode bits, pin 7) */
#define GPIO_CRL_MODE7_0 ((uint32_t)0x10000000) /* Bit 0 */
#define GPIO_CRL_MODE7_1 ((uint32_t)0x20000000) /* Bit 1 */
#define GPIO_CRL_CNF ((uint32_t)0xCCCCCCCC) /* Port x configuration bits */
#define GPIO_CRL_CNF0 ((uint32_t)0x0000000C) /* CNF0[1:0] bits (Port x configuration bits, pin 0) */
#define GPIO_CRL_CNF0_0 ((uint32_t)0x00000004) /* Bit 0 */
#define GPIO_CRL_CNF0_1 ((uint32_t)0x00000008) /* Bit 1 */
#define GPIO_CRL_CNF1 ((uint32_t)0x000000C0) /* CNF1[1:0] bits (Port x configuration bits, pin 1) */
#define GPIO_CRL_CNF1_0 ((uint32_t)0x00000040) /* Bit 0 */
#define GPIO_CRL_CNF1_1 ((uint32_t)0x00000080) /* Bit 1 */
#define GPIO_CRL_CNF2 ((uint32_t)0x00000C00) /* CNF2[1:0] bits (Port x configuration bits, pin 2) */
#define GPIO_CRL_CNF2_0 ((uint32_t)0x00000400) /* Bit 0 */
#define GPIO_CRL_CNF2_1 ((uint32_t)0x00000800) /* Bit 1 */
#define GPIO_CRL_CNF3 ((uint32_t)0x0000C000) /* CNF3[1:0] bits (Port x configuration bits, pin 3) */
#define GPIO_CRL_CNF3_0 ((uint32_t)0x00004000) /* Bit 0 */
#define GPIO_CRL_CNF3_1 ((uint32_t)0x00008000) /* Bit 1 */
#define GPIO_CRL_CNF4 ((uint32_t)0x000C0000) /* CNF4[1:0] bits (Port x configuration bits, pin 4) */
#define GPIO_CRL_CNF4_0 ((uint32_t)0x00040000) /* Bit 0 */
#define GPIO_CRL_CNF4_1 ((uint32_t)0x00080000) /* Bit 1 */
#define GPIO_CRL_CNF5 ((uint32_t)0x00C00000) /* CNF5[1:0] bits (Port x configuration bits, pin 5) */
#define GPIO_CRL_CNF5_0 ((uint32_t)0x00400000) /* Bit 0 */
#define GPIO_CRL_CNF5_1 ((uint32_t)0x00800000) /* Bit 1 */
#define GPIO_CRL_CNF6 ((uint32_t)0x0C000000) /* CNF6[1:0] bits (Port x configuration bits, pin 6) */
#define GPIO_CRL_CNF6_0 ((uint32_t)0x04000000) /* Bit 0 */
#define GPIO_CRL_CNF6_1 ((uint32_t)0x08000000) /* Bit 1 */
#define GPIO_CRL_CNF7 ((uint32_t)0xC0000000) /* CNF7[1:0] bits (Port x configuration bits, pin 7) */
#define GPIO_CRL_CNF7_0 ((uint32_t)0x40000000) /* Bit 0 */
#define GPIO_CRL_CNF7_1 ((uint32_t)0x80000000) /* Bit 1 */