Port output data register (GPIOx_ODR) (x=A..G)

Регистр выходных данных

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

Reset value: 0x0000'0000

3130292827262524
Reserved
------------------------
00000000
2322212019181716
Reserved
------------------------
00000000


15141312111098
ODR15 ODR14 ODR13 ODR12 ODR11 ODR10 ODR9 ODR8
rwrwrwrwrwrwrwrw
00000000
76543210
ODR7 ODR6 ODR5 ODR4 ODR3 ODR2 ODR1 ODR0
rwrwrwrwrwrwrwrw
00000000


Bits 31:16
Reserved
Reserved, must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
Bit 15:0
ODRy
Port output data (y= 0 .. 15)
Данные выходных портов

Доступны на чтение и запись и только в 32-битном (Word mode) режиме.

При настройке порта на вывод: бит содержит выходное значение соответствующего порта ввода-вывода.

При настройке порта на ввод: бит управляет подтяжкой входа к земле (pull-down) при ODRy=0 или к питанию (pull-up) при ODRy=1.

Для индивидуального управления битами лучше использовать регистры GPIOx_BSRR и GPIOx_BRR (x = A .. G).



/*******************  Bit definition for GPIO_ODR register  *******************/

#define GPIO_ODR_ODR0                        ((uint16_t)0x0001)            /* Port output data, bit 0 */
#define GPIO_ODR_ODR1                        ((uint16_t)0x0002)            /* Port output data, bit 1 */
#define GPIO_ODR_ODR2                        ((uint16_t)0x0004)            /* Port output data, bit 2 */
#define GPIO_ODR_ODR3                        ((uint16_t)0x0008)            /* Port output data, bit 3 */

#define GPIO_ODR_ODR4                        ((uint16_t)0x0010)            /* Port output data, bit 4 */
#define GPIO_ODR_ODR5                        ((uint16_t)0x0020)            /* Port output data, bit 5 */
#define GPIO_ODR_ODR6                        ((uint16_t)0x0040)            /* Port output data, bit 6 */
#define GPIO_ODR_ODR7                        ((uint16_t)0x0080)            /* Port output data, bit 7 */

#define GPIO_ODR_ODR8                        ((uint16_t)0x0100)            /* Port output data, bit 8 */
#define GPIO_ODR_ODR9                        ((uint16_t)0x0200)            /* Port output data, bit 9 */
#define GPIO_ODR_ODR10                       ((uint16_t)0x0400)            /* Port output data, bit 10 */
#define GPIO_ODR_ODR11                       ((uint16_t)0x0800)            /* Port output data, bit 11 */

#define GPIO_ODR_ODR12                       ((uint16_t)0x1000)            /* Port output data, bit 12 */
#define GPIO_ODR_ODR13                       ((uint16_t)0x2000)            /* Port output data, bit 13 */
#define GPIO_ODR_ODR14                       ((uint16_t)0x4000)            /* Port output data, bit 14 */
#define GPIO_ODR_ODR15                       ((uint16_t)0x8000)            /* Port output data, bit 15 */