STM32学习之路(六---SPI)

SPI是串行外围设备接口,主要应用在EEPROM、FLASH,实时时钟,AD转换,还有数字信号处理器和数字信号解码器之间。它是一种高速的,全双工,同步的通信总线,并且在芯片上只用四根线,节约芯片的管脚。在这里插入图片描述
M代表主机,I代表输入,S代表从机,O代表输出。
SPI主要特点有:可以同时发送和接收串行数据;可以当做主机或从机工作;提供频率可编程时钟;发送结束中断标志等。
在这里插入图片描述
CPHA=1,在串行时钟的第二个跳变沿(上升或下降)数据被采集。
CPOL=1,串行同步时钟的空闲状态为高电平。
CPOL=0,串行同步时钟的空闲状态为低电平。
在这里插入图片描述
CPHA=0,在串行时钟的第一个跳变沿(上升或下降)数据被采集。
SPI配置过程:
1、配置相关引脚的复用功能,使能SPIx时钟
2、初始化SPIx,设置SPIx工作模式
3、使能SPIx
4、SPI传输数据
5、查看SPI传输状态
配置的相关函数在库函数stm32f10x_spi.h和stm32f10x_spi.c中。
我们开发板上的是w25q128,所以程序的一部分配置需要查看w25q128的数据手册。
在这里插入图片描述
第一块是创建的结构体新的句柄
第二块是IO口和SPI的时钟使能
第三块是IO口的初始化,就不在多说了
第四块是针对SPI结构体成员变量的初始化设置,第一个变量是设置SPI是单向还是双向的数据模式,第二个是设置SPI的工作方式,第三个是设置SPI的数据的大小,第四个是设置空闲状态是低电平还是高电平,第五个是设置在第几个时钟沿采集数据,第六个是设置NSS由软件还是硬件控制,第七个是设置波特率的预分频系数,第八个是设置数据传输从MSB位还是LSB位开始(高位和低位),第九个是设置CRC值计算的多项式
第五块是对SPI外设的使能和启动SPI传输
w25q128的英文数据手册

猜你喜欢

转载自blog.csdn.net/weixin_42994525/article/details/82768711