STM32标准库开发—SPI通信介绍

SPI通信在这里插入图片描述

硬件电路

STM32标准库开发—SPI通信介绍_第1张图片
STM32标准库开发—SPI通信介绍_第2张图片

注意:为避免输入信号(MISO)造成冲突,只有被SS选中的设备才能使用MISO进行通信,空闲状态下该引脚呈现高阻态模式

SPI信号移位示意图

STM32标准库开发—SPI通信介绍_第3张图片

主机与从机通过交换时序实现数据传输,无论要与不要都需要双方移位寄存器的数据进行互换,才能完成数据的传输。在每个时钟信号,从自身寄存器移出一位数据,移入到对方的移位寄存器,从最高位开始移动。

SPI时序

SPI时序基本单元

STM32标准库开发—SPI通信介绍_第4张图片

SPI交换时序(模式0)

STM32标准库开发—SPI通信介绍_第5张图片
STM32标准库开发—SPI通信介绍_第6张图片

注意:由于在第一个边沿就要将输入移入到寄存器中,所以数据要在第一个边沿信号前就放置到数据总线上。在SS被拉低后,将要立即将一位数据放到数据总线上

SPI交换时序(模式1)

STM32标准库开发—SPI通信介绍_第7张图片
STM32标准库开发—SPI通信介绍_第8张图片

SPI交换时序(模式2)

STM32标准库开发—SPI通信介绍_第9张图片
STM32标准库开发—SPI通信介绍_第10张图片

SPI交换时序(模式3)

STM32标准库开发—SPI通信介绍_第11张图片
STM32标准库开发—SPI通信介绍_第12张图片

总结:
CPOL(Clock Polarity,时钟极性)决定空闲状态时,时钟信号线的高低电平
CPHA(Clock Phase,时钟相位)决定移入数据的边沿位置
移出数据意味着从自身寄存器中的最高位将一位数据移出到信号线上
移入数据意味着从信号线上读取一位数据移入到自身寄存器中的末尾

你可能感兴趣的:(stm32,单片机,嵌入式硬件)