最近在用 STM32 SPI 和其他设备通信时,同样出现连续发送几个字节,字节间隔过大的情况,根据前面的博文“STM32 UART 异步通信设置及解析”也采用 DMA 的方式进行 SPI 数据传输,在波特率较高的情况下,大大提升传输效率,这里记录一下测试过程。
1. STM32 SPI 设置
根据 STM32 应用手册上的描述,Motorola 模式下,主机连续发送 SPI 数据,字节间的间隔应为 2 个 SPI 时钟周期(关于 motorlora 模式和 TI 模式的区别见“SPI 通信协议介绍及调试方法”)。

但是在实际应用过程中,SPI 采用 DMA 和不采用 DMA 的差别还是很大的。


根据上图可以看出,不采用 DMA 时,SPI 主机连续传输数据的字节间隔约为 4~6us;采用 DMA 时,字节间隔就变为了 2 个 SPI 时钟周期。
扫码关注尚为网微信公众号

每天学习电路设计和嵌入式系统的专业知识,关注一波,没准就用上了。
原创文章,作者:sunev,如若转载,请注明出处:https://www.sunev.cn/embedded/691.html