目录

STM32之软件SPI

目录

STM32之软件SPI

https://i-blog.csdnimg.cn/direct/248df3176d6a4622b443a93513bc5882.png#pic_center SPI传输更快,最大可达80MHz,而I2C最大只有3.4MHz。输入输出是分开的,可以同时输出输入。是同步全双工。仅支持一主多从。SS是从机选择线。每个从机一根。SPI无应答机制的设计。https://i-blog.csdnimg.cn/direct/36336616d6254c00a45c7d9f2ffd4134.png#pic_center 注意:所有设备需要共地,时钟线主机输出,从机输入。MOSI主机输出,从机输入。MOSO相反。主机的SS线输出,从机输入。SS线低电平有效。主机跟哪个从机通信就把那个从机的SS线置低电平。当从机的SS为高电平,他的MOSI引脚必须切换为高阻态。https://i-blog.csdnimg.cn/direct/ecd2b66bcb98495aab2e3003bbf0ec0a.png#pic_center 注意:移位寄存器都是向左进行移位的。主机提供的波特率发生器时钟的上升沿,移位寄存器向左移一位,移出去的位放到引脚上,波特率发生器时钟的下降沿,引脚上的位采样移动寄存器的最低位。连续移8次就完成了一个数据的移位。https://i-blog.csdnimg.cn/direct/2d3ab3b7e90542f087d937bbbdc745d1.png#pic_center 模式一: https://i-blog.csdnimg.cn/direct/92d7075117114312899adfc830d79ebc.png#pic_center模式一: https://i-blog.csdnimg.cn/direct/6fecfe9a5743418992a8b50925d0bc50.png#pic_center 模式二: https://i-blog.csdnimg.cn/direct/0c1b9eb486474c099c546756989ee18e.png#pic_center https://i-blog.csdnimg.cn/direct/20325761aec04a17bda26b00d4f64b14.png#pic_center 注意每个芯片对SPI时序字节流功能的定义不一样。此处以W25Q64举例: SPI不同于I2C,是指令码加读写数据的模型。起始条件开始后,发送指令,控制读写功能。具体参考SPI的指令集。指令加上+在哪读+读什么。 此处以写使能举例,SPI模式0: 1.空闲状态下,SS高电平,SCK低电平,MOSI和MOSO的默认电平没有严格规定。 2.SS产生下降沿,时序开始。 3.SCK高电平,数据采样,从机采样输入得到0,主机采样输入得到1,发送完0x60。 4.拉高SShttps://i-blog.csdnimg.cn/direct/09dcff1e001444389f386187d5d73e0c.png#pic_center 指令+地址24位(3个字节)+发送内容 1.空闲状态下,SS高电平,SCK低电平,MOSI高电平。 2.SS产生下降沿,时序开始。 3.SCK高电平,数据采样,先发送指令,再发送地址,再发送内容 4.拉高SS和MOSI https://i-blog.csdnimg.cn/direct/b03304c5f9d348fe9f8d7a277c18b95d.png#pic_center 具体步骤参考上面的指定地址写。