Stm32 HAL SPI DMA检查操作期间接收的字节数

Stm32 HAL SPI DMA检查操作期间接收的字节数,stm32,spi,dma,hal,Stm32,Spi,Dma,Hal,我正在使用HAL通过SPI+DMA将10个字节从主设备传输到从设备。如何检查接收器此时是否有多少字节,如果没有收到所有10字节,则再次停止进程。因为主设备在发送10个字节后,应该从从设备得到一个应答,但如果从设备没有收到完整的字节,它将等待,系统将进入indifinite 有什么想法吗?“我正在用HAL通过SPI+DMA将10个字节从主设备传输到从设备。” 由于您使用DMA,所以只需将传输大小配置为DMA接收器API并启用DMA中断。当DMA接收到10字节时,DMA接收器将到达完整的输入,但发送

我正在使用HAL通过SPI+DMA将10个字节从主设备传输到从设备。如何检查接收器此时是否有多少字节,如果没有收到所有10字节,则再次停止进程。因为主设备在发送10个字节后,应该从从设备得到一个应答,但如果从设备没有收到完整的字节,它将等待,系统将进入indifinite

有什么想法吗?“我正在用HAL通过SPI+DMA将10个字节从主设备传输到从设备。” 由于您使用DMA,所以只需将传输大小配置为DMA接收器API并启用DMA中断。当DMA接收到10字节时,DMA接收器将到达完整的输入,但发送方传输的字节数小于10字节

“因为主设备在发送10个字节后应该从从从设备得到一个应答,但如果从设备没有收到完整的字节,它将等待,系统将进入独立状态……”
您可以通过在从机端使用超时机制来解决此问题。

在SPI协议中,主设备在发送数据包的同时接收应答。对于通过SPI接收一个字节,您需要发送一个字节。若命令已完成传输,但从机必须发送更长的请求,则必须发送虚拟字节。