SPI status register (SPI_SR)
Регистр состояния SPI
Смещение (Address offset): 0x08
Reset value: 0x0002
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
| Reserved | |||||||
| --- | |||||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| BSY | OVR | MODF | CRCERR | UDR | CHSIDE | TXE | RXNE |
| r | r | r | rc_w0 | r | r | r | r |
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 : интерфейс SPI (I2S) свободен
1 : интерфейс SPI (I2S) в состоянии обмена данными или буфер передачи Tx не пуст.
Флаг устанавливается и сбрасывается аппаратно.
0 : ошибки нет
1 : произошла ошибка переполнения
Флаг устанавливается аппаратно и сбрасывается программно.
0 : ошибки нет
1 : произошла ошибка режима обмена
Флаг устанавливается аппаратно и сбрасывается программно.
Бит недоступен в режиме I2S.
0 : ошибки нет
1 : произошла ошибка контрольной суммы
Флаг устанавливается аппаратно и сбрасывается программно записью 0.
Бит недоступен в режиме I2S.
0 :
1 :
Бит недоступен в режиме SPI.
0 : левый канал должен быть передан или уже получен
1 : правый канал должен быть передан или уже получен
Бит недоступен в режиме SPI и не имеет смысла в режиме PCM.
0 : буфер передачи не пуст
1 : буфер передачи пуст
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 */