SPI通信

SPI简介

SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线
四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input——主机输出从机接收)、MISO(Master Input Slave Output——主机接收从机输出)、SS(Slave Select——低电平有效)
同步,全双工
支持总线挂载多设备(一主多从)

SPI硬件电路

SPI通信_第1张图片
主机可以有多条SS选择控制线!当SS为低电平时有效,为高电平时从机相当于断开!

字节移位原理

SPI通信_第2张图片
原理:两个移位寄存器会将按高位逐次移动到对应的线上,经过一次交换后,高位会变为另一寄存器的最低位,因此经过8次移动后,一个字节就会完成交换!

SPI基本时序单元

SPI通信_第3张图片
交换字节模式选择:
SPI通信_第4张图片
SPI通信_第5张图片
SPI通信_第6张图片
SPI通信_第7张图片
SPI时序:
指定字节写:
SPI通信_第8张图片
指定字节读:
SPI通信_第9张图片

软件模拟SPI读写W25Q64

软件模拟SS、SCK、MOSI、MISO线:

SPI通信_第10张图片

软件模拟SPI基本时序:

SPI通信_第11张图片

软件模拟SPI前初始化:

SPI通信_第12张图片

STM32SPI硬件外设读写W25Q64

SPI外外设简介

STM32内部集成了硬件SPI收发电路,可以由硬件自动执行时钟生成、数据收发等功能,减轻CPU的负担
可配置8位/16位数据帧、高位先行/低位先行
时钟频率: fPCLK / (2, 4, 8, 16, 32, 64, 128, 256)
支持多主机模型、主或从操作
可精简为半双工/单工通信
支持DMA
兼容I2S协议

STM32F103C8T6 硬件SPI资源:SPI1、SPI2

SPI框图以及基本结构

SPI通信_第13张图片
MOSI、MISO公用一个寄存器
SPI通信_第14张图片

重要的两个标志位

TXE:发送寄存器为空
0:数据还没有被转移进移位寄存器
1:数据已经被转移进移位寄存器
RXNE:接收寄存器非空
0:数据没有收到
1:数据已经收到,可以读出

硬件SPI传输模式

主模式全双工连续传输:
SPI通信_第15张图片
非连续传输:
SPI通信_第16张图片

两种模式的利弊

主模式全双工连续传输更高效,但是软件代码相对更难操作
非连续传输传输相对没有主模式全双工连续传输高效,等待了接收的完成,但是软件代码相对好写

硬件SPI代码展示(SS线依旧使用软件控制)

SPI初始化

SPI通信_第17张图片

SPI时序

SPI通信_第18张图片

你可能感兴趣的:(STM32单片机标准库,stm32,嵌入式硬件,单片机,学习,笔记)