CPOL 脉冲传输前和完成后保持的状态 0:低电平 1:高电平
CPHA 0:第一边沿采样数据,第二边沿输出数据
1:第一边沿输出数据,第二边沿采样数据
//SPI模拟读写
//CPOL : 0
//CPHA : 0
u8 SPI_ReadWrite(u8 Wdat)
{
u8 i=0;
u8 dat = 0;
for(i=0;i<8;i++)
{
if(Wdat&0x80){SIO = 1;}else{SIO = 0;}
SCK = 1; //第一边沿(采样数据)
Wdat<<= 1;
dat <<= 1;
if(SIO == 1){
dat++;
}
SCK = 0; //第二边沿(输出数据)
}
return dat;
}
SPI是单片机外设电路中常用的一种通讯方式,适用于近距离通信,通常用于芯片间的通讯,有四根线。在SPI通讯中总线时钟和总线相位也两个比较重要的概念,一般在使用SPI通信时都使用默认设置,所以容易把这两个参数忽略。和大家分享一下SPI通讯、时钟极性以及时钟相位的基础知识。
什么是SPI通讯总线
SPI总线的英文全称为S“Serial Periphral Interface”,意思是串行外设接口,由于通讯距离比较短,适用于芯片级别的短距离通讯。SPI的通讯分为主机和从机,属于高速全双工的总线通讯方式,SPI有四根线,分别为:
-
MISO:主设备输入与从设备输出线;
-
MOSI:主设备输出与从设备