【STM32】-SPI通讯

1、SPI协议简介

SPI(Serial Peripheral Interface)是由摩托罗拉公司开发的同步串行通信协议,采用主从模式架构,支持全双工通信。被广泛应用在ADC、LCD等设备与MCU间的高速通讯场合。

1.1、SPI物理层

  • 基本信号线:
    • SCK(Serial Clock):时钟信号线,用于通讯数据同步。由主机产生,不同的设备支持的最高时钟频率不同,两个设备之间通讯时,受限于低速设备。
    • MOSI(Master Output,Slave Input):主设备发送,从设备接收。
    • MISO(Master Intput,Slave Output):从设备发送,主设备接收。
    • SS/CS(Slave Select):低电平有效,主设备控制选中的从设备。每个从设备都有一条独立的SS信号线,本信号线占用主机的一个引脚。

1.2、SPI协议层

SPI协议定义了通讯的起始和停止信号、数据有效性、时钟同步等环节。

  • 1、起始和停止信号

    NSS信号有高变低,是起始信号;NSS信号有低变高,是停止信号。

  • 2、数据位宽

    SPI每次数据传输可以8位或16位为单位,每次传输的单位数不受限制。

  • 3、时钟极性(CPOL)

    指SPI通讯设备处于空闲状态时,SCK信号线的电平信号(即SPI通讯开始前、NSS线为高电平时SCK的状态)。

    • CPOL = 0:SCK在空闲状态时为低电平;
    • CPOL = 1:SCK在空闲状态时为高电平;
  • 4、时钟相位(CPHSA)

    指采样数据的时刻。

    • CPHA=0时,MOSI或MISO数据线上的信号将会在SCK时钟线的"奇数边沿"被采样。
    • CPHA=1时,MOSI或MISO数据线上的信号将会在SCK时钟线的"偶数边沿"被采样。
  • 5、SPI工作模式

    根据CPOL和CPHA的不同状态,SPI分为了四种工作模式。主从机需要工作在同一模式下才能正常通讯。

2、STM32中SPI架构和特性

2.1、STM32中SPI架构

在这里,我们不对原理进行过多分析,仅分析它主要几个模块。

  • 通讯引脚:也就是SPI通讯所需要的三根信号线和一根控制线。
  • 时钟控制:也就是SCK的时钟信号,一般最大可以配置为所挂载时钟总线频率的一半。
  • 数据控制:这里实现数据的收发、。
  • 整体控制:配置SPI模式、波特率、MSB或LSB先行、主从模式、设置数据位宽、单双向模式等。同时可以根据状态寄存器产生SPI中断信号、DMA请求等。

2.2、STM32中SPI特性

STM32的SPI外设可以作为通讯的主机或从机、支持最高的SCK时钟频率为f_pclk/2、支持SPI的4种模式、数据位数可选8位或16位、可选MSB先行或LSB先行。

支持双线全双工、双线单向以及单线模式。

2.3、STM32中SPI初始化结构体介绍

在这里,我们不对其做过多介绍,只需要了解它配置参数即可。


相关推荐
xingzhemengyou113 小时前
STM32 DMA
stm32·单片机·嵌入式硬件
qq_4017004114 小时前
STM32F103片内Flash 存储器操作(FLASH页划分)
stm32·单片机
Heartache boy14 小时前
DWT基础应用与获取程序运行时间Debug练习(上)
笔记·stm32·单片机
我要成为嵌入式大佬15 小时前
正点原子MP157--问题详解--五(beep编写报错端口繁忙)
stm32·嵌入式硬件·学习
yuan1999717 小时前
温度传感器VC++串口通信程序(与51单片机通讯)
stm32·单片机·嵌入式硬件
LCMICRO-1331084774617 小时前
国产长芯微LDC4048完全P2P替代DAC128S085,是一款 8 通道、带输出放大器的数模转换器 (DAC)
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·数模转换器dac
雅斯驰17 小时前
电流模式控制+快速瞬态响应:LTM4650AY的FPGA供电技术解析
stm32·单片机·嵌入式硬件·物联网·fpga开发·汽车
JaneHan_17 小时前
STM32CubeMX+HAL+Keil5 GPIO输入 按键控制
stm32·单片机·嵌入式硬件
平凡灵感码头17 小时前
C51 与 STM32 编程对比:从数据类型、关键字到程序结构
stm32·单片机·嵌入式硬件
LCG元18 小时前
STM32实战:基于STM32F103的HC-SR04超声波测距与OLED显示
stm32·单片机·嵌入式硬件