STM32之软件SPI

SPI传输更快,最大可达80MHz,而I2C最大只有3.4MHz。输入输出是分开的,可以同时输出输入。是同步全双工。仅支持一主多从。SS是从机选择线。每个从机一根。SPI无应答机制的设计。

注意:所有设备需要共地,时钟线主机输出,从机输入。MOSI主机输出,从机输入。MOSO相反。主机的SS线输出,从机输入。SS线低电平有效。主机跟哪个从机通信就把那个从机的SS线置低电平。当从机的SS为高电平,他的MOSI引脚必须切换为高阻态。

注意:移位寄存器都是向左进行移位的。主机提供的波特率发生器时钟的上升沿,移位寄存器向左移一位,移出去的位放到引脚上,波特率发生器时钟的下降沿,引脚上的位采样移动寄存器的最低位。连续移8次就完成了一个数据的移位。

模式一:
模式一:

模式二:

注意每个芯片对SPI时序字节流功能的定义不一样。此处以W25Q64举例:

SPI不同于I2C,是指令码加读写数据的模型。起始条件开始后,发送指令,控制读写功能。具体参考SPI的指令集。指令加上+在哪读+读什么。

此处以写使能举例,SPI模式0:

1.空闲状态下,SS高电平,SCK低电平,MOSI和MOSO的默认电平没有严格规定。

2.SS产生下降沿,时序开始。

3.SCK高电平,数据采样,从机采样输入得到0,主机采样输入得到1,发送完0x60。

4.拉高SS

指令+地址24位(3个字节)+发送内容

1.空闲状态下,SS高电平,SCK低电平,MOSI高电平。

2.SS产生下降沿,时序开始。

3.SCK高电平,数据采样,先发送指令,再发送地址,再发送内容

4.拉高SS和MOSI

具体步骤参考上面的指定地址写。

相关推荐
Bona Sun34 分钟前
单片机手搓掌上游戏机(十五)—pico运行fc模拟器之编译环境
c语言·c++·单片机·游戏机
贝塔实验室38 分钟前
红外编解码彻底解析
网络·嵌入式硬件·信息与通信·信号处理·代码规范·基带工程·精益工程
小尧嵌入式1 小时前
C++基础语法总结
开发语言·c++·stm32·单片机·嵌入式硬件·算法
2401_853448232 小时前
STM32F103C8T6---OLED显示屏
stm32·单片机·oled
沐欣工作室_lvyiyi2 小时前
基于单片机的居家智能音箱系统(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·智能音箱
沐欣工作室_lvyiyi2 小时前
基于单片机的飞机客舱窗帘控制系统(论文+源码)
单片机·嵌入式硬件·毕业设计·窗户
CHY_1283 小时前
JESD204B 协议解析(4)Subclass2 时序分析
嵌入式硬件·fpga开发·jesd204
Bona Sun3 小时前
单片机手搓掌上游戏机(十六)—pico运行fc模拟器之程序修改烧录
c语言·c++·单片机·游戏机
Bona Sun5 小时前
单片机手搓掌上游戏机(十三)—pico运行fc模拟器之硬件准备
c语言·c++·单片机·游戏机
Bona Sun5 小时前
单片机手搓掌上游戏机(十八)—pico运行fc模拟器之更大屏幕
c语言·c++·单片机·游戏机