1.SPI通信
时钟极性(CPOL):
CP0L=0:空闲状态,低电平
CP0L=1:空闲状态,高电平
时钟相位(CPHA):
CPHA=0:
CPHA=1:
2.配置SPI为主模式
配置步骤:

SPI_CR1寄存器
1. 通过SPI_CR1寄存器的BR[2:0]位定义串行时钟波特率。

BR[2:0]
2. 选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系(见图212)。

CPOL和CPHA位
3. 设置DFF位来定义8位或16位数据帧格式。

DFF位
4. 配置SPI_CR1寄存器的LSBFIRST位定义帧格式。

LSBFIRST位
5. 如果需要NSS引脚工作在输入模式,硬件模式下,在整个数据帧传输期间应把NSS脚连接到高电平;在软件模式下,需设置SPI_CR1寄存器的SSM位和SSI位。如果NSS引脚工作在输出模式,则只需设置SSOE位。

SSM位

SSI位
6. 必须设置MSTR位和SPE位(只当NSS脚被连到高电平,这些位才能保持置位)。

MSTR位

SPE位
注:在这个配置中,MOSI引脚是数据输出,而MISO引脚是数据输入。
3.例程:

SPI_Init函数
ZSF