【STM32 Blue Pill编程】-SPI主机和从机通信(两个STM32之间SPI通信)
SPI主机和从机通信(两个STM32之间SPI通信)
文章目录
- SPI主机和从机通信(两个STM32之间SPI通信)
-
- 1、SPI数据传输模式介绍
- 2、硬件准备和接线
- 3、模块配置
- 4、代码实现
-
- 4.1 SPI主机数据发送
- 4.2 SPI从机在轮询模式下接收数据
-
- 4.2.1 模块配置
- 4.2.2 代码实现
- 4.3 SPI从机中断模式接收数据
-
- 4.3.1 模块配置
- 4.3.2 代码实现
- 4.4 SPI从机通过DMA接收数据
-
-
- 4.4.1 模块配置
- 4.4.2 代码实现
-
在本文中,我们将介绍如何通过 SPI 通信协议在主机 STM32 和从机STM32 板之间发送和接收数据。 在文章中我们将特别重点展示三种通过 SPI 通信接收数据的方法,包括轮询、DMA 和中断方法。
1、SPI数据传输模式介绍
在继续介绍SPI 接收器之前,让我们首先简要介绍一下通过 SPI 总线传输数据的不同类型的模式。
模式 | 描述 |
---|---|
轮询 | SPI 数据传输通过轮询方式发生在阻塞模式下。 当数据传输开始时,CPU 停止,直到所有数据传输完毕。 数据传输完成后,CPU重新启动,继续执行主代码。 数据以字节为单位发送,CPU 等待当前字节完全传输,然后发送下一个字节。 |
中断 | 在这种情况下,SPI 数据传输以非阻塞模式进行。 与轮询方式不同的是,CPU不会停止而是继续执行主代码。 数据传输完成标志着中断的触发。 这使得 CPU 能够发送下一个数据字节。 然而,使用高数据速率的中断方法可能会使 CPU 过载。 |
DMA | DMA 方法比轮询或中断方法更有效。 在这种情况下,数据传输以非阻塞 |