GPIOx_CRH - Port configuration register high

Регистр конфигурации старших портов ввода-вывода [8:15]

Смещение (Address offset): 0x04

Reset value: 0x4444'4444

3130292827262524
CNF15[1:0] MODE15[1:0] CNF14[1:0] MODE14[1:0]
rwrwrwrwrwrwrwrw
01000100
2322212019181716
CNF13[1:0] MODE13[1:0] CNF12[1:0] MODE12[1:0]
rwrwrwrwrwrwrwrw
01000100


15141312111098
CNF11[1:0] MODE11[1:0] CNF10[1:0] MODE10[1:0]
rwrwrwrwrwrwrwrw
01000100
76543210
CNF9[1:0] MODE9[1:0] CNF8[1:0] MODE8[1:0]
rwrwrwrwrwrwrwrw
01000100


Bits   31:30,  27:26,  23:22,  19:18,  15:14,  11:10,  7:6,  3:2
CNFy[1:0]
Port x configuration bits  (y = 8...15)
Конфигурация порта ввода-вывода

Порт в режиме входа (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)

Bits   29:28,  25:24,  21:20,  17:16,  13:12,  9:8,  5:4,  1:0
MODEy[1:0]
Port x mode bits  (y = 0...7)
Режимы работы порта ввода-вывода

 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 */