Control register 3 (USART_CR3)

Третий регистр управления

Базовый адрес:

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

Reset value: 0x0000'0000

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


15141312111098
Reserved CTSIE CTSE RTSE
---------------rwrwrw
00000000
76543210
DMAT DMAR SCEN NACK HDSEL IRLP IREN EIE
rwrwrwrwrwrwrwrw
00000000


Bits 31:11
Reserved
Forced by hardware to 0
Зарезервировано. Аппаратно установлено в 0
Bit 10
CTSIE
CTS interrupt enable
Разрешает прерывание по сигналу на линии CTS

 0 : прерывание запрещено.

 1 : прерывание генерируется при изменении состояния входа CTS. Так же устанавливается флаг CTS в регистре USART_SR.

Недоступен для UART4 и UART5.

Bit 9
CTSE
CTS enable
Включает аппаратное управление передачей с использованием линии CTS.

 0 : аппаратное управление линией CTS отключено.

 1 : режим CTS включен. Передача данных осуществляется только при низком уровне сигнала (активном) на линии CTS.

Если при передаче уровень сигнала на линии CTS стал высоким (неактивным), то связь останавливается только по завершении передачи всего фрейма.

Если при записи данных в регистр USART_DR уровень сигнала на линии CTS стал высоким (неактивным), то передача откладывается до установления низкого уровня сигнала на линии CTS.

Недоступен для UART4 и UART5.

Bit 8
RTSE
RTS enable
Включает аппаратный запрос данных на приём с использованием линии RTS.

 0 : аппаратное управление линией RTS отключено.

 1 : режим RTS включен. Данные могут быть получены, когда низкий уровень сигнала (активный) на линии RTS.

Данные запрашиваются только при наличии свободного места в буфере приёма.

Если при передаче уровень сигнала на линии RTS стал высоким (неактивным), то связь останавливается только по завершении передачи всего фрейма.

Недоступен для UART4 и UART5.

Bit 7
DMAT
DMA enable transmitter
Разрешает прямой доступ к памяти (DMA) при передаче данных.

 0 : режим DMA для передачи данных отключен.

 1 : режим DMA для передачи данных включен.

Недоступен для UART5.

Bit 6
DMAR
DMA enable receiver
Разрешает прямой доступ к памяти (DMA) при приёме данных.

 0 : режим DMA для приёма данных отключен.

 1 : режим DMA для приёма данных включен.

Недоступен для UART5.

Bit 5
SCEN
Smartcard mode enable
Разрешает режим смарт-карты.

 0 : режим смарт-карты отключен.

 1 : режим смарт-карты включен.

Недоступен для UART4 и UART5.

Bit 4
NACK
Smartcard NACK enable
Разрешает ответ приёмника на подтверждение приёма сообщения, но содержащего ошибку

 0 : ответ NACK отключен.

 1 : ответ NACK разрешен.

NACK (Negative Acknowledgement) - отрицательное подтверждение.

Недоступен для UART4 и UART5.

Bit 3
HDSEL
Half-duplex selection
Выбор полудуплексного режима связи

 0 : обычный режим связи.

 1 : полудуплексный режим связи.

Bit 2
IRLP
IrDA low-power
Выбирает обычный или энергосберегающий режимы связи для ИК приёмо-передатчика

 0 : обычный режим

 1 : энергосберегающий режим

Bit 1
IREN
IrDA mode enable
Включает работу USART в режиме ИК приёмо-передатчика

 0 : ИК режим отключен.

 1 : ИК режим включен.

Bit 0
EIE
Error interrupt enable
Разрешает прерывание по ошибкам: переполнение входного буфера ORE, шум в линии NE, ошибки фрейма FE в многобуферном режиме связи (DMAR=1 в регистре USART_CR3).

 0 : прерывание запрещено

 1 : прерывание по ошибкам разрешено



/******************  Bit definition for USART_CR3 register  *******************/

#define  USART_CR3_EIE                       ((uint16_t)0x0001)            /* Error Interrupt Enable */
#define  USART_CR3_IREN                      ((uint16_t)0x0002)            /* IrDA mode Enable */
#define  USART_CR3_IRLP                      ((uint16_t)0x0004)            /* IrDA Low-Power */
#define  USART_CR3_HDSEL                     ((uint16_t)0x0008)            /* Half-Duplex Selection */

#define  USART_CR3_NACK                      ((uint16_t)0x0010)            /* Smartcard NACK enable */
#define  USART_CR3_SCEN                      ((uint16_t)0x0020)            /* Smartcard mode enable */

#define  USART_CR3_DMAR                      ((uint16_t)0x0040)            /* DMA Enable Receiver */
#define  USART_CR3_DMAT                      ((uint16_t)0x0080)            /* DMA Enable Transmitter */

#define  USART_CR3_RTSE                      ((uint16_t)0x0100)            /* RTS Enable */
#define  USART_CR3_CTSE                      ((uint16_t)0x0200)            /* CTS Enable */
#define  USART_CR3_CTSIE                     ((uint16_t)0x0400)            /* CTS Interrupt Enable */
#define  USART_CR3_ONEBIT                    ((uint16_t)0x0800)            /* One Bit method */