spi四种工作模式时序图 spi通信时序图详解( 二 )


??数据在传输中,高位在先还是低位在先,SPI协议并无明确规定,但是数据要在主从机中正确传输,自然双方要先约定好,一般会采用高位在先(MSB)方式传输 。
??这里需要再提及的概念是时钟极性(CPOL)和时钟相位(CPHA) 。
??时钟极性(CPOL)指通讯设备处于空闲状态(SPI开始通讯前、nSS线无效)时,SCK的状态 。
CPOL = 0:SCK在空闲时为低电平
CPOL = 1:SCK在空闲时为高电平
1 | CPOL = 0:SCK在空闲时为低电平2 | CPOL = 1:SCK在空闲时为高电平 ??时钟相位(CPHA)指数据的采样时刻位于SCK的偶数边沿采样还是奇数边沿采样 。
CPHA = 0:在SCK的奇数边沿采样
CPHA = 1:在SCK的偶数边沿采样
1 | CPHA = 0:在SCK的奇数边沿采样2 |CPHA = 1:在SCK的偶数边沿采样 ??那么这样说来,SPI的采样时刻并非由上升沿/下降沿决定的 。注意的是,在数据采样时刻,MOSI和MOSI的电平为有效电平,数据不能在这个时刻进行切换,在非采样时刻MOSI和MISO上的信号才能切换 。
??完整的时序图如下:
图4
图5
??所以说,SPI有4中工作模式:
图6
更正:工作模式3的CPOL应为1 。
注意要让主机和从机需要在相同的工作模式下,这样才可以实现正常通讯 。
下面介绍用STM32库函数实SPI通讯代码 。
#ifndef __SPI_H#define __SPI_H#include \\\\"stm32f10x.h\\\\"void SPI2_Co

推荐阅读