HAL SPI DMA 检查运行过程中收到了多少字节

HAL SPI DMA check how many bytes received during operation

我正在使用 HAL 通过 SPI+DMA 从主机向从机传输 10 个字节。我如何检查接收者当时有多少字节,如果没有收到所有 10 个字节,则再次停止该过程。因为发送 10 个字节后的主站应该从从站得到一个答复,但是如果从站没有收到完整的字节,它会等待并且系统进入无限......

有什么想法吗??

"I am transferring 10 bytes from master to slave over SPI+DMA with HAL." 由于您使用 DMA,您只需配置传输大小到 DMA 接收器 API 并启用 DMA 中断。当 DMA 接收到 10 个字节时,DMA 接收方完成中断将到达,除非发送方传输少于 10 个字节。

"Because the master after sending 10 bytes should get an answer from slave but if the slave has not received full byte it waits and system go in indifinite......." 在slave端使用timeout机制可以解决这个问题。