硬件SPI

SPI简介

SPI和IIC都是高位先行,串口是低位先行

SPI1是APB2(72Mhz)的外设,SPI2是APB1(36Mhz)的外设,所以SP1比SP12要快

SPI基本结构

TDR转移到移位寄存器置TXE标志位,移位寄存器转移到RDR置RXNE标志位

可以发现SPI的硬件和IIC、串口是异曲同工的,其中SPI和串口都是全双工(也就是TXR和RDR分别工作)而IIC是半双工

SS片选用GPIO口来模拟

SPI全双工连续传输

SCK下降沿,MISO和MOSI分别移入移除数据

发送部分:当SCK开始时,也就是开始传输时,TXE标志为0,这时就写入数据,因为移位是才开始写入,就直接写入到移位寄存器,紧接着TXE为1,表示正在发送数据,此时发送寄存器TDR空,所以马上写入下一个数据

SPI全双工非连续传输

当检测到TXE为1,就软件写入数据到数据寄存器TDR,TXE为0,因为是才开始发送,所以目前移位寄存器为空,所以数据直接转移到移位寄存器中进行发送,波形产生,TXE为1(表示可以写入下一个数据了)

连续模式和非连续模式的区别就在于:在连续模式中,一旦TXE为1,就模式写入下一个数据进行等待,实现无缝衔接;而在非连续模式中,TXE为1,不着急写入下一个数据,而是等待第一个时序结束,才写入下一个数据,只要波形传输完成,RXNE为1,这时就读取数据,之后再写入下一个数据

总结:

  1. 等待TXE为1
  2. 写入数据到TDR
  3. 等待RXNE为1
  4. 读取RDR数据

缺点:

在字节与字节之间会产生间隙,拖慢了传输速度(SCK频率低没问题,SXK频率高就不行)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值