Control register 2 (USART_CR2)
Второй регистр управления
Базовый адрес:
Смещение (Address offset): 0x10
Reset value: 0x0000'0000
31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 |
Reserved | |||||||
--- | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
Reserved | |||||||
--- | --- | --- | --- | --- | --- | --- | --- |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
Reserved | LINEN | STOP[1:0] | CLKEN | CPOL | CPHA | LBCL | |
--- | rw | rw | rw | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Reserved | LBDIE | LBDL | Reserved | ADD[3:0] | |||
--- | rw | rw | -- | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 : LIN выключен
1 : LIN включен
LIN-режим позволяет отправлять синхонизирующие break-символы при установленом бите SBK регистра USART_CR1, а так же обнаруживать их.
00 : 1 стоповый бит
01 : 0.5 стоповых бита
10 : 2 стоповый бита
11 : 1.5 стоповых бита
Установка 0.5 и 1.5 стоповых бита недоступно в UART4 и UART5.
0 : вывод CK отключен
1 : вывод CK включен
0 : лог. "0" при незанятой линии. Подтяжка к "земле"
1 : лог. "1" при незанятой линии. Подтяжка к "питанию"
0 : первый тактовый переход фиксирует данные
1 : второй тактовый переход фиксирует данные
0 : тактовый импульс не выводится на CK
1 : тактовый импульс выводится на CK
0 : прерывание запрещено
1 : прерывание разрешено.
Прерывание USART генерируется, когда принят Break-символ, при этом выставляется бит LBD="1" регистра USART_SR.
0 : 10 - бит
1 : 11 - бит
/****************** Bit definition for USART_CR2 register *******************/
#define USART_CR2_ADD ((uint16_t)0x000F) /* Address of the USART node */
#define USART_CR2_LBDL ((uint16_t)0x0020) /* LIN Break Detection Length */
#define USART_CR2_LBDIE ((uint16_t)0x0040) /* LIN Break Detection Interrupt Enable */
#define USART_CR2_LBCL ((uint16_t)0x0100) /* Last Bit Clock pulse */
#define USART_CR2_CPHA ((uint16_t)0x0200) /* Clock Phase */
#define USART_CR2_CPOL ((uint16_t)0x0400) /* Clock Polarity */
#define USART_CR2_CLKEN ((uint16_t)0x0800) /* Clock Enable */
#define USART_CR2_STOP ((uint16_t)0x3000) /* STOP[1:0] bits (STOP bits) */
#define USART_CR2_STOP_0 ((uint16_t)0x1000) /* Bit 0 */
#define USART_CR2_STOP_1 ((uint16_t)0x2000) /* Bit 1 */
#define USART_CR2_LINEN ((uint16_t)0x4000) /* LIN mode enable */