一、Cube设置
第一章Cube设置
相比第一章的新增加的设置
1.Pinout&Configuration—>Connectivity—>USART1 : Mode—>Asynchronous(异步通信)
PB6—>USART1_Tx
PB7—>USART1_Rx
2.Pinout&Configuration—>Connectivity—>SPI: Mode—>Full-Duplex Master(全双工主机)
PA5—>SPI_SCLK (时钟)
PA6—>SPI_MISO
PA7—>SPI_MOSI
3.Pinout&Configuration—>System Core—>GPIO : PA4—>_Output(user label改为SPI_CS 片选)
4.Pinout&Configuration—>Connectivity—>SPI—>Parameter Settings—>Clock Parameters—>Prescaler(for Baud Rate):64(参数设置—> 时钟参数—>预分频器(波特率)) 这里也可以选择SPI的模式(CPHA、CPOL)
二、概述
SPI(Serial Peripheral Interface串行外设接口)是一种全双工的高速通讯总线,可支持同时输入输出。
4线SPI器件有四个信号
- 时钟(SPI CLOCK SCLK)
- 片选(CS/NSS)
- 主出从入(MOSI)
- 主入从出(MISO)
四种模式
spi四种模式SPI的相位(CPHA)和极性(CPOL)分别可以为0或1
对应的4种组合构成了SPI的4种模式(mode)
Mode 0 CPOL=0, CPHA=0
Mode 1 CPOL=0, CPHA=1
Mode 2 CPOL=1, CPHA=0
Mode 3 CPOL=1, CPHA=1
时钟极性CPOL: 即SPI空闲时,时钟信号SCLK的电平(1:空闲时高电平; 0:空闲时低电平)
时钟相位CPHA: 即SPI在SCLK第几个边沿开始采样(0:第一个边沿开始; 1:第二个边沿开始)
mode 0 和mode 3,这两种模式的相同的地方是都在时钟上升沿采样传输数据
区别这两种方式的简单方法就是看空闲时,时钟的电平状态,低电平为mode 0 ,高电平为mode 3
三、代码
链接:https://pan.baidu.com/s/1oTY0MT1wzz6NEWuJNAe2Mw
提取码:v90c
自收发spi通信
加一个spi2mode选 Full-Duplex Slave
spi1与spi2的sck连接
MOSI也连接一起
*这里还需要加一个USART串口为了在串口终端打印数据*
自收发程序
链接:https://pan.baidu.com/s/1Si5n-rnYlqhHMaHPP5bX_g
提取码:qot9