SPI status register (SPI_SR)

Регистр состояния SPI

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

Reset value: 0x0002

15141312111098
Reserved
---
00000000
76543210
BSY OVR MODF CRCERR UDR CHSIDE TXE RXNE
rrrrc_w0rrrr
00000010


Биты
Имя
Описание
15:8
Reserved
Reserved, must be kept at reset value
Зарезервировано. Должно быть сохранено значение после сброса
7
BSY
Busy flag
Признак занятости интерфейса

 0 :  интерфейс SPI (I2S) свободен

 1 :  интерфейс SPI (I2S) в состоянии обмена данными или буфер передачи Tx не пуст.

Флаг устанавливается и сбрасывается аппаратно.

6
OVR
Overrun flag
Признак ошибки переполнения

 0 :  ошибки нет

 1 :  произошла ошибка переполнения

Флаг устанавливается аппаратно и сбрасывается программно.

5
MODF
Mode fault
Признак ошибки режима обмена

 0 :  ошибки нет

 1 :  произошла ошибка режима обмена

Флаг устанавливается аппаратно и сбрасывается программно.

Бит недоступен в режиме I2S.

4
CRCERR
CRC error flag
Признак ошибки контрольной суммы

 0 :  ошибки нет

 1 :  произошла ошибка контрольной суммы

Флаг устанавливается аппаратно и сбрасывается программно записью 0.

Бит недоступен в режиме I2S.

3
UDR
Underrun flag

 0 : 

 1 : 

Бит недоступен в режиме SPI.

2
CHSIDE
Channel side

 0 :  левый канал должен быть передан или уже получен

 1 :  правый канал должен быть передан или уже получен

Бит недоступен в режиме SPI и не имеет смысла в режиме PCM.

1
TXE
Transmit buffer empty
Признак опустошения буфера передачи Tx

 0 :  буфер передачи не пуст

 1 :  буфер передачи пуст

0
RXNE
Receive buffer not empty
Признак заполнения буфера приёма Rx

 0 :  буфер приёма не заполнен

 1 :  буфер приёма заполнен



/*******************  Bit definition for SPI_SR register  ********************/

#define  SPI_SR_RXNE       ((uint8_t)0x01)     /* Receive buffer Not Empty */
#define  SPI_SR_TXE        ((uint8_t)0x02)     /* Transmit buffer Empty */

#define  SPI_SR_CHSIDE     ((uint8_t)0x04)     /* Channel side */
#define  SPI_SR_UDR        ((uint8_t)0x08)     /* Underrun flag */

#define  SPI_SR_CRCERR     ((uint8_t)0x10)     /* CRC Error flag */
#define  SPI_SR_MODF       ((uint8_t)0x20)     /* Mode fault */
#define  SPI_SR_OVR        ((uint8_t)0x40)     /* Overrun flag */

#define  SPI_SR_BSY        ((uint8_t)0x80)     /* Busy flag */