GPIOx_CRH - Port configuration register high
Регистр конфигурации старших портов ввода-вывода [8:15]
Смещение (Address offset): 0x04
Reset value: 0x4444'4444
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
CNF15[1:0] | MODE15[1:0] | CNF14[1:0] | MODE14[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 |
CNF13[1:0] | MODE13[1:0] | CNF12[1:0] | MODE12[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 |
CNF11[1:0] | MODE11[1:0] | CNF10[1:0] | MODE10[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 |
CNF9[1:0] | MODE9[1:0] | CNF8[1:0] | MODE8[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_CRH register *******************/
#define GPIO_CRH_MODE ((uint32_t)0x33333333) /* Port x mode bits */
#define GPIO_CRH_MODE8 ((uint32_t)0x00000003) /* MODE8[1:0] bits (Port x mode bits, pin 8) */
#define GPIO_CRH_MODE8_0 ((uint32_t)0x00000001) /* Bit 0 */
#define GPIO_CRH_MODE8_1 ((uint32_t)0x00000002) /* Bit 1 */
#define GPIO_CRH_MODE9 ((uint32_t)0x00000030) /* MODE9[1:0] bits (Port x mode bits, pin 9) */
#define GPIO_CRH_MODE9_0 ((uint32_t)0x00000010) /* Bit 0 */
#define GPIO_CRH_MODE9_1 ((uint32_t)0x00000020) /* Bit 1 */
#define GPIO_CRH_MODE10 ((uint32_t)0x00000300) /* MODE10[1:0] bits (Port x mode bits, pin 10) */
#define GPIO_CRH_MODE10_0 ((uint32_t)0x00000100) /* Bit 0 */
#define GPIO_CRH_MODE10_1 ((uint32_t)0x00000200) /* Bit 1 */
#define GPIO_CRH_MODE11 ((uint32_t)0x00003000) /* MODE11[1:0] bits (Port x mode bits, pin 11) */
#define GPIO_CRH_MODE11_0 ((uint32_t)0x00001000) /* Bit 0 */
#define GPIO_CRH_MODE11_1 ((uint32_t)0x00002000) /* Bit 1 */
#define GPIO_CRH_MODE12 ((uint32_t)0x00030000) /* MODE12[1:0] bits (Port x mode bits, pin 12) */
#define GPIO_CRH_MODE12_0 ((uint32_t)0x00010000) /* Bit 0 */
#define GPIO_CRH_MODE12_1 ((uint32_t)0x00020000) /* Bit 1 */
#define GPIO_CRH_MODE13 ((uint32_t)0x00300000) /* MODE13[1:0] bits (Port x mode bits, pin 13) */
#define GPIO_CRH_MODE13_0 ((uint32_t)0x00100000) /* Bit 0 */
#define GPIO_CRH_MODE13_1 ((uint32_t)0x00200000) /* Bit 1 */
#define GPIO_CRH_MODE14 ((uint32_t)0x03000000) /* MODE14[1:0] bits (Port x mode bits, pin 14) */
#define GPIO_CRH_MODE14_0 ((uint32_t)0x01000000) /* Bit 0 */
#define GPIO_CRH_MODE14_1 ((uint32_t)0x02000000) /* Bit 1 */
#define GPIO_CRH_MODE15 ((uint32_t)0x30000000) /* MODE15[1:0] bits (Port x mode bits, pin 15) */
#define GPIO_CRH_MODE15_0 ((uint32_t)0x10000000) /* Bit 0 */
#define GPIO_CRH_MODE15_1 ((uint32_t)0x20000000) /* Bit 1 */
#define GPIO_CRH_CNF ((uint32_t)0xCCCCCCCC) /* Port x configuration bits */
#define GPIO_CRH_CNF8 ((uint32_t)0x0000000C) /* CNF8[1:0] bits (Port x configuration bits, pin 8) */
#define GPIO_CRH_CNF8_0 ((uint32_t)0x00000004) /* Bit 0 */
#define GPIO_CRH_CNF8_1 ((uint32_t)0x00000008) /* Bit 1 */
#define GPIO_CRH_CNF9 ((uint32_t)0x000000C0) /* CNF9[1:0] bits (Port x configuration bits, pin 9) */
#define GPIO_CRH_CNF9_0 ((uint32_t)0x00000040) /* Bit 0 */
#define GPIO_CRH_CNF9_1 ((uint32_t)0x00000080) /* Bit 1 */
#define GPIO_CRH_CNF10 ((uint32_t)0x00000C00) /* CNF10[1:0] bits (Port x configuration bits, pin 10) */
#define GPIO_CRH_CNF10_0 ((uint32_t)0x00000400) /* Bit 0 */
#define GPIO_CRH_CNF10_1 ((uint32_t)0x00000800) /* Bit 1 */
#define GPIO_CRH_CNF11 ((uint32_t)0x0000C000) /* CNF11[1:0] bits (Port x configuration bits, pin 11) */
#define GPIO_CRH_CNF11_0 ((uint32_t)0x00004000) /* Bit 0 */
#define GPIO_CRH_CNF11_1 ((uint32_t)0x00008000) /* Bit 1 */
#define GPIO_CRH_CNF12 ((uint32_t)0x000C0000) /* CNF12[1:0] bits (Port x configuration bits, pin 12) */
#define GPIO_CRH_CNF12_0 ((uint32_t)0x00040000) /* Bit 0 */
#define GPIO_CRH_CNF12_1 ((uint32_t)0x00080000) /* Bit 1 */
#define GPIO_CRH_CNF13 ((uint32_t)0x00C00000) /* CNF13[1:0] bits (Port x configuration bits, pin 13) */
#define GPIO_CRH_CNF13_0 ((uint32_t)0x00400000) /* Bit 0 */
#define GPIO_CRH_CNF13_1 ((uint32_t)0x00800000) /* Bit 1 */
#define GPIO_CRH_CNF14 ((uint32_t)0x0C000000) /* CNF14[1:0] bits (Port x configuration bits, pin 14) */
#define GPIO_CRH_CNF14_0 ((uint32_t)0x04000000) /* Bit 0 */
#define GPIO_CRH_CNF14_1 ((uint32_t)0x08000000) /* Bit 1 */
#define GPIO_CRH_CNF15 ((uint32_t)0xC0000000) /* CNF15[1:0] bits (Port x configuration bits, pin 15) */
#define GPIO_CRH_CNF15_0 ((uint32_t)0x40000000) /* Bit 0 */
#define GPIO_CRH_CNF15_1 ((uint32_t)0x80000000) /* Bit 1 */