49.7.7.8 FIFO Pointer Error
A FIFO overflow is reported in SPI_SR.
If the Transmit FIFO is full and a write access is performed on SPI_TDR, it generates a Transmit FIFO pointer error and sets SPI_SR.TXFPTEF.
In Multiple Data mode, if the number of data written in SPI_TDR (according to the register access size) is greater than the free space in the Transmit FIFO, a Transmit FIFO pointer error is generated and SPI_SR.TXFPTEF is set.
A FIFO underflow is reported in SPI_SR.
In Multiple Data mode, if the number of data read in SPI_RDR (according to the register access size) is greater than the number of unread data in the Receive FIFO, a Receive FIFO pointer error is generated and SPI_SR.RXFPTEF is set.
No pointer error occurs if the FIFO state/level is checked before writing/reading in SPI_TDR/SPI_RDR. The FIFO state/level can be checked either with TXRDY, RXRDY, TXFL or RXFL. When a pointer error occurs, other FIFO flags may not behave as expected; their states should be ignored.
If a pointer error occurs, a software reset must be performed using SPI_CR.SWRST (configuration will be lost).