2024-11-18 05:26 AM
Dear ST,
I facing a problem or bug in the calculation routine of your stm32f7xx_hal_spi.c
Explicit in line 3117 of the function call: SPI_DMAReceiveCplt()
I using DMA SPI only the MOSI channel as RX_Only. This works as expected, when I dont activate CRC calculation. If crc is enabled (in 8Bit Datasize) the rountine raised the condition: RXNE timeout als HAL Error.
1. Why you check during that time the RXNE flag anymore, during the function call is that flag usualy already not set anymore, when the DMA ITQ was raise? To see here:
2024-11-19 07:18 AM
Dear UlfS,
1. We check RXWNE flag with SPI_WaitFlagStateUntilTimeout() to verify that there is no more data in RX FIFO, otherwise it woud mean that the transfer is not completed.
2. Sorry I don't understand your point, could you reformulate your question please ?
3. The CRC length doesn't depend on data size unless you set Init.CRCLength to SPI_CRC_LENGTH_DATASIZE. If you want the 16-bit size CRC you can initialize Init.CRCLength to SPI_CRC_LENGTH_16BIT
Best Regards,
Lucas