嵌入式stm32 复习(工作用)--- SPI协议原理知识 2020.3.12
引言
继续来更新嵌入式这个系列,再说一遍,这个系列我一般都会使用寄存器来编写,具体原因:
一、相比于库函数来说寄存器比较难编写,得具体根据芯片手册来编写。
二、能够通过寄存器的形式来让大家更加的清楚每一行代码为什么要写成这个值,具体是怎样编写的。
原理部分:
1.串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置成主模式,并为外部从设备提供通信时钟(SCK)。接口还能以多主配置方式工作。
2.它可用于多种用途,包括使用一条双向数据线的双线单工同步传输,还可使用CRC校验的可靠通信。
3.其中需要掌握的知识点:
- 带或不带第三根双向数据线的双线单工同步传输。
- 8或16位传输帧格式选择,一般我们选8位,跟IIC差不多。
- 主或从操作。
- 8个主模式波特率预分频系数(最大为fPCLK/2)。
- 可编程的数据顺序,MSB在前或LSB在前。
4.
MOSI:只能由主设备向从设备发数据。
MISO:只能由从设备向主设备发数据。
CS: 是用来选择与哪个设备通信的。比如:当cs1从高电平变成低电平时,表示主设备是与当前设备进行通信的,进而防止总线上通讯冲突。
5.SCK是由波特率产生器产生的的,是产生固定时钟周期的。
6.7. 高电平空闲:是从低电平到高电平,发送或者接收数据。
低电平空闲:是从高电平到低电平,发送或者接收数据。