STM32 SPI学习

SPI

串行外设设备接口(Serial Peripheral Interface),是一种高速的,全双工,同步的通信总线。

STM32 SPI学习_第1张图片
SCK时钟信号由主机发出。
SPI接口主要应用在存储芯片。
STM32 SPI学习_第2张图片
STM32 SPI学习_第3张图片

  1. SPI相关引脚:MOSI(输出数据线)、MISO(输入数据线)、SCK(时钟)、NSS(片选)。
  2. 数据发送和接收:与缓冲区、移位寄存器以及引脚相关。
  3. 时钟信号:SPI时钟信号通过SPI_CR1寄存器配置。
  4. 主控制逻辑:涉及两个控制寄存器SPI_CR1/2用于配置SPI工作,SPI_SR用于查看工作状态。

使用软件管理NSS,硬件上的NSS引脚就可以另做他用,通过SSM、SSI来控制电平。主机NSS拉高,从机NSS低电平有效。

SPI外设对应的引脚

STM32芯片有多个SPI外设,每个SPI外设输出的信号会到不同的GPIO口。
STM32F1有三个SPI。
STM32 SPI学习_第4张图片
SPI属于边沿协议,IIC属于电平协议。
主机只向从机进行写操作,可以忽略接收到的从机数据。
主要要对从机进行读操作,需要发送一个空数据引发从机发送数据。

SPI工作模式

时钟极性(CPOL)没有数据传输时,时钟线的空闲状态电平。

  • 0:SCK在空闲状态保持低电平
  • 1:SCK在空闲状态保持高电平

时钟相位(CPHA)时钟线在第几个时钟边沿采样数据。

  • 0:SCK的第一边沿(奇数)进行数据位采样,数据在第一个时钟边沿锁存。
  • 1:SCK的第二边沿(偶数)进行数据位采样,数据在第二个时钟边沿锁存。

STM32 SPI学习_第5张图片

SPI相关寄存器

STM32 SPI学习_第6张图片
SPI_CR1
STM32 SPI学习_第7张图片
STM32 SPI学习_第8张图片
SPI_SR
在这里插入图片描述
STM32 SPI学习_第9张图片
SPI_DR
STM32 SPI学习_第10张图片

SPI相关HAL库驱动

STM32 SPI学习_第11张图片
STM32 SPI学习_第12张图片
STM32 SPI学习_第13张图片

NOR FLASH

FLASH是常用的用于存储数据的半导体器件,它具有容量大,可重复擦写,按“扇区/块”擦写,掉电后数据可继续保存的特性。

FLASH只能写0,不能写1,写1靠擦除。

FLASH主要有NOR Flash和NAND Flash两种类型,NOR和NAND是两种数字门电路。

STM32 SPI学习_第14张图片
STM32 SPI学习_第15张图片

NM25Q128

NM25Q128,串行闪存器件,属于NOR FLASH只的一种,容量为128Mb。擦写周期可达10W次,可以将数据保存达20年之久。

你可能感兴趣的:(stm32,stm32,学习,单片机)