stm32-SPI协议

SPI协议详解(图文并茂+超详细)

SPI通讯协议

于是我们想有没有更好一点的串行通讯方式;相比较于UART,SPI的工作方式略有不同。

SPI是一个同步的数据总线,也就是说它是用单独的数据线和一个单独的时钟信号来保证发送端和接收端的完美同步。

时钟是一个振荡信号,它告诉接收端在确切的时机对数据线上的信号进行采样。

产生时钟的一侧称为主机,另一侧称为从机。总是只有一个主机(一般来说可以是微控制器/MCU),但是可以有多个从机(后面详细介绍);

数据的采集时机可能是时钟信号的上升沿(从低到高)或下降沿(从高到低)。

具体要看对SPI的配置;

整体的传输大概可以分为以下几个过程:

主机先将NSS信号拉低,这样保证开始接收数据;

当接收端检测到时钟的边沿信号时,它将立即读取数据线上的信号,这样就得到了一位数据(1bit);

由于时钟是随数据一起发送的,因此指定数据的传输速度并不重要,尽管设备将具有可以运行的最高速度(稍后我们将讨论选择合适的时钟边沿和速度)。

主机发送到从机时:主机产生相应的时钟信号,然后数据一位一位地将从MOSI信号线上进行发送到从机;

主机接收从机数据:如果从机需要将数据发送回主机,则主机将继续生成预定数量的时钟信号,并且从机会将数据通过MISO信号线发送;

具体如下图所示;

相关推荐
@迷糊13 分钟前
关于产生PWM波的发生电路的学习记录
单片机·嵌入式硬件
不被定义的~wolf28 分钟前
【STM32】编写程序控制开发板的RGB LED灯
stm32·单片机·嵌入式硬件
二年级程序员1 小时前
51单片机的五类指令(五)——位操作类指令
单片机·嵌入式硬件·51单片机
firewood20241 小时前
初学STM32系统时钟设置
stm32·单片机·嵌入式硬件
Caramel_biscuit2 小时前
STM32 CAN学习
stm32·嵌入式硬件·学习
最后一个bug2 小时前
教你快速理解linux中的NUMA节点探测是干什么用的?
linux·c语言·开发语言·arm开发·嵌入式硬件
坏柠3 小时前
深入浅出SPI通信协议与STM32实战应用(W25Q128驱动)(理论部分)
stm32·单片机·嵌入式硬件
Invinciblenuonuo5 小时前
STM32八股【5】----- TIM定时器
stm32·单片机·嵌入式硬件
selenia88605 小时前
如何成功点亮LED灯并实现闪烁效果
单片机·嵌入式硬件
禾川兴 132424006886 小时前
国产芯片解析:龙讯HDMI Splitter系列:多屏共享高清
单片机·fpga开发·适配器模式