1、定义:SPI是一种通信接口,串行外围设备接口
2、作用:主要负责Flash和单片机之间的通信
3、通信方式:高速的串行同步全双工
4、结构:环形总线结构,发送一个数据的同时还需要接收一个数据
5、四线结构:CLK、CS、MISO、MOSI
6、SPI有四种工作模式,由时钟极性(CPOL)和时钟相位(CPHA)决定
SPI0和SPI3是一样的,上升沿采样,下降沿输出
SPI1和SPI2是一样的,下降沿采样,上升沿输出
简单代码编写如下:
// CS -- PA4、CLK -- PA5、MISO -- PA6、MOSI -- PA7
void spi_Config(void)
{
RCC->APB2ENR |=(0x01<<2)|(0x01<<12); //打开时钟
GPIOA->CRL &=~(0xf<<20);
GPIOA->CRL |=(0xB<<20); //PA5(CLK)复用推挽,速率50MHz
GPIOA->CRL &=~(0xf<<24)