STM32——SPI通信协议以及软件读写

1、SPI协议

SPI相对于I2C传输速度更快;设计简单,通信协议使用硬件线比较多,有些资源浪费

以下设备需要进行共地,如果从机没有独立的供电源,主机需要给供电

SS线低电平有效,主机只能选择一个从机

推挽输出的高低电平均有高驱动能力,(I2C为防止电路短路采用开漏输出模式)

当某个从机未被选中时,它的MISO为高阻态,并不输出有用信息

首先由波特率发生器产生时钟上升下降沿

当主机中的数据是10101010,从机为01010101时,此时产生一个上升沿

此时MOSI通信线上为1,为高电平,MISO线为0,为下降沿,之后迎来一个下降沿时

主从机都会进行数据采样输入,如下所示:

同样的方式,直到第8个时钟之后:

以上是同时发送和接收

只有发送不想接收时,只读从机数据即可;只想接收不想发送,只看主机接收数据即可

之后是SPI时序条件:

上升沿时主机和从机分别移出数据最高位,下降沿时,主机移出的数据移入从机数据的最低位,从机的最高位移入主机数据的最低位。模式1与模式3的CPOL=1,SCK取反

MISO在SS为高电平是一直处于高阻态。以下和上述介绍的一样

除了以上模式外,还有提前半个相位的模式0,此时SCK的动作不一致,它需要在第0个边沿移出数据,然后移入等,相当于SS的下降沿也当为时钟的一部分,(这种模式使用更多)与模式2不同就是CPOL=1,SCL极性取反:

一些指令时序:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hssfscv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值