GPIOx_CRL - Port configuration register low

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

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

Reset value: 0x4444'4444

3130292827262524
CNF7[1:0] MODE7[1:0] CNF6[1:0] MODE6[1:0]
rwrwrwrwrwrwrwrw
01000100
2322212019181716
CNF5[1:0] MODE5[1:0] CNF4[1:0] MODE4[1:0]
rwrwrwrwrwrwrwrw
01000100


15141312111098
CNF3[1:0] MODE3[1:0] CNF2[1:0] MODE2[1:0]
rwrwrwrwrwrwrwrw
01000100
76543210
CNF1[1:0] MODE1[1:0] CNF0[1:0] MODE0[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 = 0...7)
Конфигурация порта ввода-вывода

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