9 SPI
(1)介绍
串行外设接口SPI,是一种同步串行外设接口,允许MCU与外围设备进行全双工同步串行通信。
SPI总线是三线制,采用主从模式架构,支持一个或多个Slave设备,由于设计简单,性能优良,又不牵扯专利问题,被广泛使用。SPI可以配置为支持SPI协议或者支持IIS音频协议。SPI默认工作在SPI模式,可以软件切换为IIS模式,在小容量和中容量设备上,不支持IIS音频协议。
IIS音频协议也是一种3引脚的同步串行接口通信协议,它支持四种音频标准,包括飞利浦IIS协议,MSB和LSB对齐标准,以及PCM标准。
(2)SPI的组成
SPI只需要四根线:
1.SCk(串行时钟线):作为主设备的输出,从设备的输入
2.MISO(主机/从机输出数据线):该引脚在从模式下发送数据,在主模式下接收数据。
3.MOSI(主机输出/从机输入数据线):该引脚在主模式下发送数据,在从模式下接收数据。
4.NSS(低电平有效的从机选择线):它是一个可选的引脚,用来选择主/从设备。
(3)库函数
SPI_Init
(4)示例
#include "spi.h"
//以下是 SPI 模块的初始化代码,配置成主机模式,访问 SD Card/W25Q128/NRF24L01
//SPI 口初始化
//这里针是对 SPI2 的初始化
void SPI2_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
SPI_InitTypeDef SPI_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE );//PORTB 时钟使能