下面我们来看看两个不同的寄存中的两个位,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传输发生在从活跃到空闲时钟状态。从活跃到空闲也就是从活跃到高电平,也就是从低到高电平了,就是我们要的上升沿。