FreeRtos——25、STM32HAL库SPI总线接口设备及驱动

张开发
2026/5/22 18:58:06 15 分钟阅读
FreeRtos——25、STM32HAL库SPI总线接口设备及驱动
第一节、SPI通信原理与相关概念:SPI的基本原理在另外一篇文章中《STM32 CubeMX超详细开发带FreeRtos》有非常详细的介绍这里就只总结一些要点1.SPI总线的特点:SPI(serial peripheral interface)串行外设接口的缩写,它是Motorola公司推出的一种同步串行接口技术,是一种高速的,全双工的,同步的通信总线。SPI是支持全双工通信, 通信简单,数据传输速率快,非差分的,一主多从的通信模式。所谓为非差分与差分的概念是指在远距离传输时,是否通过比较两个根的电平的差来判断是传据是高还是低,一般远距离传输都是使用差分总线,近距离的都是非差分总线。SPI是非差分总线,R485就是一种差分总线。了解即可。缺点:无应答机制确认是否接收到数据,所以与I2C总线协议比较在数据的可靠性上有一点差距,但是速度快啊。与I2c相比:2.三根共享线:SCK,MOSI,MISO,及1个或多个片选线:1. 常规SPI模式:2.一个片选的菊花链模式:3.SPI数据传输方式:SPI 主设备和从设备都有一个串行移位寄存器,主设备通过向它的 SPI 串行寄存器写入一个字节来发起一次传输。SPI控制器硬件框图:4.SPI的采样模式:由CPOL(时钟极性)与 CPHA(时钟相位)CPOL决定空闲时的电平的高低,CPHA决定采样的时机当:CPOL(时钟极性) = 0 时,即空闲时电平为低,第一个边沿意味为由低到高的上升边沿。当:CPOL(时钟极性) = 1时,即空闲时电平为高,第一个边沿意味为由高到低的下降边沿。当:CPHA(时钟相位) = 0时,即第一个边沿采样,下一个边沿传输。当:CPHA(时钟相位) = 1时,即第一个边沿传输,下一个边沿采样。比如CPOL = 0,CPHA = 1时,代表第一个边沿传输(上升边沿),第二个边沿采样(下降边沿)所以就组合了四种模式:Mode0(CPOL=0, CPHA = 0), Model1(CPOL=0, CPHA = 1), Model2(CPOL=1,CPHA=0), Model3(CPOL=1,CPHA=1);比如:模式0时序:5.使用CubeMX快速配置SPI控制器:要点:1.配置时钟的波特率,2.配置采样模式,3.配置传输高位优先还是低位优先,4.配置CS一般使用一个单独的GPIO作为选择。5.使用SPI功能。

更多文章