SPI模式下CKE,CKP的设置

下面我们来看看两个不同的寄存中的两个位,CKE,CKP

SSPSTAT:

bit6/CKE: SPI Clock Select bit
SPI时钟选择位

1 = Transmit occours on transition from active to Idle clock

state.
1 = 传输发生在从活跃到空闲时钟状态
0 = Transmit occours on transition from Idle to active clock

state.
0 = 传输发生在从空闲到活跃时钟状态
___________________________________________________

SSPCON:
bit4/CKP:Clock Polarity Select bit
时钟极性选择位
1 = Idle state for clock is a high level
空闲状态时时钟为高电平
0 = Idle state for clock is a low  level
空闲状态时时钟为低电平

在SPI的应用过程中,我们不知道我们要操作的从器件是上升沿发送消息,还是下降沿发送消息。这里,我们就要用到了CKE,CKP了。

他们分别控制着时钟的相位和极性。

下面,看一段我们会SPI接口的初始化操作:

    SSPCON = 0x30;        //主控方式,Fosc/4,CKP=1空闲时钟电平为高,SSPEN=1使能同步串行功能
    SSPSTAT = 0xC0;        //SMP=1    时序信号末尾采样输入数据,CKE=1时序信号上升沿发送数据

比如,我用到的74HC595是上升沿时传输消息的,我就有如上配置。CKP = 1使的空闲时钟电平为高。CKE = 1传输发生在从活跃到空闲时钟状态。从活跃到空闲也就是从活跃到高电平,也就是从低到高电平了,就是我们要的上升沿。

原文地址:https://www.cnblogs.com/hnrainll/p/1905175.html