SPI通信
1.简介
这里介绍STM32通过SPI实现对外部SPIFlash的读写功能,其中,SPI作为主设备,SPIFlash作为从设备。为了验证SPI Flash收到的数据是否是STM32通过SPI发送给它的数据,我们将SPIFlash读取的数据显示在屏幕上(TFTLCD)。
1.1 SPI简介
SPI就是串行外围设备接口,它是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,这四根线的定义分别是:
MISO:主设备数据输入,从设备数据输出;
MOSI:主设备数据输出,从设备数据输入;
SCLK:时钟信号,由主设备产生;
CS:从设备片选信号,由主设备控制;
SPI为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果CPOL=0,串行同步时钟的空闲状态为低电平;如果CPOL=1,串行同步时钟的空闲状态为高电平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果CPHA=1,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI总线数据传输时序图如下图: