Control register 1 (USART_CR1)
Первый регистр управления
Смещение (Address offset): 0x0C
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 | UE | M | WAKE | PCE | PS | PEIE | |
--- | --- | rw | rw | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
TXEIE | TCIE | RXNEIE | IDLEIE | TE | RE | RWU | SBK |
rw | rw | rw | rw | rw | rw | rw | rw |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
При сбросе бита прекращается обмен данными, отключаются выходы и прекращается тактирование USART.
0 : USART выключен
1 : USART включен
0 : 1 стартовый бит, 8 бит данных, N стоповых бит
1 : 1 стартовый бит, 9 бит данных, N стоповых бит
0 : Idle Line - по свободной линии
1 : Address Mark - по адресной метке
0 : контроль чётности отключен
1 : контроль чётности включен
При включенном контроле четности бит контроля чётности выставляется в позицию MSb (старшего бита): 8-й бит при M=0, 9-й бит при M=1. При включении бит контроля чётности активируется после обмена текущим байтом.
0 : Even parity - контроль чётности
1 : Odd parity - контроль нечётности
Тип контроля четности при смене выбирается после обмена текущим байтом.
0 : прерывание запрещено
1 : прерывание разрешено.
Прерывание USART генерируется, когда обнаружена ошибка контроля четности, при этом выставляется бит PE="1" регистра USART_SR.
0 : прерывание запрещено
1 : прерывание разрешено.
Прерывание USART генерируется, когда переданы все биты из буфера передатчика (буфер пуст), при этом выставляется бит TXE="1" регистра USART_SR.
0 : прерывание запрещено
1 : прерывание разрешено.
Прерывание USART генерируется, когда передача окончена, при этом выставляется бит TC="1" регистра USART_SR.
0 : прерывание запрещено
1 : прерывание разрешено.
Прерывание USART генерируется, когда буфер входных данных заполнен (приняты все биты), при этом выставляется бит ORE="1" или RXNE="1" регистра USART_SR.
0 : прерывание запрещено
1 : прерывание разрешено.
Прерывание USART генерируется, когда приём окончен и линия стала свободна, при этом выставляется бит IDLE="1" регистра USART_SR.
0 : передача данных запрещена
1 : передача данных разрешена
Во время передачи кратковременная установка TE="0" (с последующим TE="1") по завершении передачи формирует сигнал Свободная линия (idle line), за исключением режима смарт-карты.
После установки TE="1" перед началом передачи возникает задержка в 1 бит.
0 : приёмник отключен
1 : приёмник работает
0 : приёмник USART в "активном" режиме
1 : приёмник USART в режиме "сна"
0 : нет "break"-символов в передаче
1 : в передаче будут использованы "break"-символы.
/****************** Bit definition for USART_CR1 register *******************/
#define USART_CR1_SBK ((uint16_t)0x0001) /* Send Break */
#define USART_CR1_RWU ((uint16_t)0x0002) /* Receiver wakeup */
#define USART_CR1_RE ((uint16_t)0x0004) /* Receiver Enable */
#define USART_CR1_TE ((uint16_t)0x0008) /* Transmitter Enable */
#define USART_CR1_IDLEIE ((uint16_t)0x0010) /* IDLE Interrupt Enable */
#define USART_CR1_RXNEIE ((uint16_t)0x0020) /* RXNE Interrupt Enable */
#define USART_CR1_TCIE ((uint16_t)0x0040) /* Transmission Complete Interrupt Enable */
#define USART_CR1_TXEIE ((uint16_t)0x0080) /* PE Interrupt Enable */
#define USART_CR1_PEIE ((uint16_t)0x0100) /* PE Interrupt Enable */
#define USART_CR1_PS ((uint16_t)0x0200) /* Parity Selection */
#define USART_CR1_PCE ((uint16_t)0x0400) /* Parity Control Enable */
#define USART_CR1_WAKE ((uint16_t)0x0800) /* Wakeup method */
#define USART_CR1_M ((uint16_t)0x1000) /* Word length */
#define USART_CR1_UE ((uint16_t)0x2000) /* USART Enable */
#define USART_CR1_OVER8 ((uint16_t)0x8000) /* USART Oversmapling 8-bits */