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


Биты
Имя
Описание
31:16
Reserved
Reserved, must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
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 */