在STM32F767的中文参考手册中增加了NSSP Mode
设置:
以下是STM32F7系列的中文参考手册中关于NSSP Mode的描述:
该模式通过 SPIx_CR2 寄存器中的 NSSP 位来激活,只有将 SPI 接口配置为 Motorola SPI 主模式 (FRF=0)
且在第一个边沿捕捉时,该模式才起作用(SPIx_CR1 CPHA = 0,CPOL 设置忽略)。激活后,当 NSS
至少保持一个时钟周期的高电平状态时,两个连续的数据帧 传输间将生成 NSS 脉冲。该模式下,从器件可以锁存数据。NSSP
脉冲模式旨在用于具有 一个主器件-从器件对的应用。
对于我们大多数的SPI期间,基本上都是传输开始把NSS拉低,传输完成再拉高。
但是在某些串行外设接口上,比如74HC595,发送一个byte的代码如下:
void HC595SendData(unsigned char SendVal)
{
unsigned char i;
for(i=0;i<8;i++)
{
if((SendVal<<i)&0x80)MOSIO=1;
else MOSIO=0;
S_CLK=0;
NOP();
NOP();
S_CLK=1;
}
R_CLK=0;
NOP();
NOP();
R_CLK=1;
}
其可以认为是一个工作在Only Transmit
模式下的主设备,MOSIO
是主机数据输出,S_CLK
是时钟输出,单设备不需要 NSS,注意其R_CLK
,当R_CLK
脉冲发出时,移位寄存器74HC595才会把数据发送出去并重新锁存,所以这里NSSP,可以完美的与74HC595呼应。
只是我们在大多数情况下用不到而已。