1.SPI通信
时钟极性(CPOL):
CP0L=0:空闲状态,低电平
CP0L=1:空闲状态,高电平
时钟相位(CPHA):
CPHA=0:
CPHA=1:
2.配置SPI为主模式
配置步骤:
![](https://img.haomeiwen.com/i14776283/ea54d8c5526ef7ee.jpg)
1. 通过SPI_CR1寄存器的BR[2:0]位定义串行时钟波特率。
![](https://img.haomeiwen.com/i14776283/fd908c86a589883c.jpg)
2. 选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系(见图212)。
![](https://img.haomeiwen.com/i14776283/7e604a4b98354ec8.jpg)
3. 设置DFF位来定义8位或16位数据帧格式。
![](https://img.haomeiwen.com/i14776283/73928c87695bb918.jpg)
4. 配置SPI_CR1寄存器的LSBFIRST位定义帧格式。
![](https://img.haomeiwen.com/i14776283/87afd82953bed16f.jpg)
5. 如果需要NSS引脚工作在输入模式,硬件模式下,在整个数据帧传输期间应把NSS脚连接到高电平;在软件模式下,需设置SPI_CR1寄存器的SSM位和SSI位。如果NSS引脚工作在输出模式,则只需设置SSOE位。
![](https://img.haomeiwen.com/i14776283/3eb8da9b2bcffc3f.jpg)
![](https://img.haomeiwen.com/i14776283/ed7958668e7f9b61.jpg)
6. 必须设置MSTR位和SPE位(只当NSS脚被连到高电平,这些位才能保持置位)。
![](https://img.haomeiwen.com/i14776283/b49bc026e7531446.jpg)
![](https://img.haomeiwen.com/i14776283/352db3ad9442edf5.jpg)
注:在这个配置中,MOSI引脚是数据输出,而MISO引脚是数据输入。
3.例程:
![](https://img.haomeiwen.com/i14776283/a0d473592164fad3.jpg)
ZSF
网友评论