Serial Peripheral Interface 串行外设接口。SPI 是一种高速的,全双工,同步的通信总线。芯片的管脚只占4根线。
通信原理:以主从方式为主,一主一从或多个从设备。至少3条SDI(数据输入)、SDO(输出)、SCLK(时钟)、CS(片选)
1.SDO-主设备数据输出,从设备数据输入
2.SDI-主设备数据输入,从设备数据输出
3.SCLK-时钟信号,由设备产生
4.CS-从设备使能信号,由主设备控制
通信由主设备发起。主设备通过MOSI脚数据发送给从设备,从设备通过MISO引脚回传数据。
全双工通信的数据输出和数据输入是用同一种时钟信号同步;时钟信号由主设备通过SCK脚提供。
SPI_InitStructure.SPI_Direction //设置SPI单向还是双向数据模式
SPI_InitStructure.SPI_Mode //设置为SPI工作模式
SPI_InitStructure.SPI_DataSize //SPI数据大小
SPI_InitStructure.SPI_CPOL //选择串行时钟稳态
SPI_InitStructure.SPI_CPHA //设置捕获的时钟活动
SPI_InitStructure.SPI_NSS //指定NSS信号由硬件还是软件管理
SPI_InitStructure.SPI_BaudRatePrescaler //定义波特率预分频值
SPI_InitStructure.SPI_FirstBit //数据传送位 高位在前还是低位在前
SPI_InitStructure.SPI_CRCPolynomial // CRC 值计算的多项式
SPI_Init(SPI1, &SPI_InitStructure); //初始化SPI 接口
SPI_Cmd(SPI1, ENABLE); //使能SPI 串行接口
阅读(1840) | 评论(0) | 转发(0) |