stm32H7 SPI和SPI DMA时间差异对比

偶然发现spi dma如果在单个字节速度会比spi模式慢很多, 因此做一个对比

SPI速度设置为16M

1 单个字节收发

SPI模式

可以看到每个字节的数据之间有不是连续的, 中间会有一段时间没有数据

SPI DMA模式

如果每次收发1个字节, 会慢很多 达到8us, 远远超过了SPI模式

2 SPI DMA大量数据读写

因为SPI模式间隔和单字节是一样的,这里就只测试SPI DMA模式

可以看到SPI DMA数据和数据之间是连续的

3 SPI模式和SPI DMA模式读FLASH 4096字节数据时间

SPI模式13ms

SPI DMA模式2MS

4 SPI DMA不同速度下读4096字节时间对比

1 16M -2ms

2 32M-1ms

3 50M -600us

4 100m-350us

5 总结

1 如果是单个字节, 那么SPI模式速度比SPI DMA模式块

2 如果是大量数据传输, 还是DMA速度快很多倍

3 SPI时钟速度越快, 大量数据传输的优势越明显

经验分享 程序员 微信小程序 职场和发展