一、引言

SPI(Serial Peripheral Interface)是一种高速、全双工、同步的通信总线,广泛应用于嵌入式系统中主设备与外设的通信。STM32CubeMX提供了图形化配置界面,简化了SPI的初始化流程。本文通过表格对比方式,详细解析各配置项的含义与差异。
配置信息如下

二、SPI核心配置项对比解析

(一)工作模式(Mode)选择

模式选项 核心功能特点 适用场景 数据传输方向
Disable 禁用SPI功能,不进行任何通信操作 不需要使用SPI外设时
Full-Duplex Master 主设备模式,可同时发送和接收数据 大多数SPI通信场景(如控制Flash、显示屏) 双向同步(MOSI+MISO同时工作)
Full-Duplex Slave 从设备模式,可同时发送和接收数据 作为外设被主设备控制(如传感器模块) 双向同步(依赖主设备时钟)
Half-Duplex Master 主设备模式,同一时间只能发送或接收 资源受限的单向高速通信(如单向数据采集) 单向(分时发送/接收)
Half-Duplex Slave 从设备模式,同一时间只能发送或接收 简单外设的单向响应(如状态反馈) 单向(依赖主设备时钟)
Receive Only Master 主设备模式,仅接收数据不发送 仅需读取外设数据(如ADC采样数据) 单向接收(仅MISO有效)
Receive Only Slave 从设备模式,仅接收数据不发送 仅需接收指令的外设(如简单执行器) 单向接收(依赖主设备时钟)
Transmit Only Master 主设备模式,仅发送数据不接收 仅需向外设发送指令(如控制LED矩阵) 单向发送(仅MOSI有效)

(二)硬件NSS信号(Hardware NSS Signal)配置

配置选项 信号控制方式 优缺点对比 适用场景
Disable 禁用硬件NSS,需软件控制GPIO模拟片选 优点:引脚灵活;缺点:需手动控制时序 多从设备场景、引脚资源紧张时
Hardware NSS Input Signal NSS作为输入信号(接收外部片选) 优点:硬件自动响应;缺点:仅适用于从设备 从设备模式下,被其他主设备控制时
Hardware NSS Output Signal NSS作为输出信号(主动控制片选) 优点:硬件自动控制时序;缺点:引脚固定 主设备模式下,需快速切换从设备时

(三)基本参数(Basic Parameters)配置

参数项 可选值 功能说明 典型应用场景
Frame Format Motorola / TI 通信帧格式,Motorola为SPI标准格式 绝大多数SPI外设(默认选Motorola)
Data Size 8 Bits / 16 Bits 单次传输的数据位数 8位:通用外设(如Flash);16位:高精度ADC
First Bit MSB First / LSB First 数据传输的起始位(高位优先/低位优先) 几乎所有场景默认MSB First

(四)时钟参数(Clock Parameters)配置

参数项 含义与作用 配置要点 对通信的影响
Prescaler(预分频值) 系统时钟分频系数(如2/4/8…) 分频值越小,时钟频率越高 频率过高可能导致外设无法响应
Baud Rate(波特率) 实际通信速率(如18MHz、42MHz) 需与外设支持的最大速率匹配 速率越高,传输效率越高但抗干扰性下降
Clock Polarity(CPOL) Low(空闲低电平)/ High(空闲高电平) 决定时钟信号的初始状态 需与外设的时钟极性一致
Clock Phase(CPHA) 1 Edge(一沿)/ 2 Edge(二沿) 决定数据采样和传输的时钟边沿 与CPOL共同决定SPI模式(0~3)

(五)高级参数(Advanced Parameters)配置

参数项 可选值 功能说明 配置建议
CRC Calculation Enable / Disable 启用/禁用CRC校验(数据完整性检查) 对可靠性要求高时启用(如工业控制)
NSS Signal Type Software 软件控制NSS时的信号类型(仅Disable硬件时可见) 配合GPIO手动控制片选电平
DMA Enable Tx / Rx / Both 启用DMA传输(减轻CPU负担) 大量数据传输时启用(如图像传输)

三、SPI模式(CPOL+CPHA)对比表

SPI模式 CPOL(时钟极性) CPHA(时钟相位) 空闲时钟状态 数据采样边沿 数据传输边沿
模式0 0(Low) 0(1 Edge) 低电平 下降沿(二沿) 上升沿(一沿)
模式1 0(Low) 1(2 Edge) 低电平 上升沿(一沿) 下降沿(二沿)
模式2 1(High) 0(1 Edge) 高电平 上升沿(二沿) 下降沿(一沿)
模式3 1(High) 1(2 Edge) 高电平 下降沿(一沿) 上升沿(二沿)

四、配置步骤总结

  1. 选择SPI外设(如SPI1、SPI2)并启用
  2. 配置工作模式(根据主从角色和传输方向选择)
  3. 设置硬件NSS(复杂场景用软件模拟)
  4. 配置基本参数(数据位数、帧格式等按外设手册设置)
  5. 调整时钟参数(波特率不超过外设上限,模式匹配外设要求)
  6. 启用高级功能(如CRC、DMA,按需配置)
  7. 生成代码并在工程中调用HAL库函数实现通信

通过以上表格对比,可清晰掌握STM32CubeMX中SPI各配置项的差异与适用场景,配置时需严格匹配外设的数据手册要求,确保通信稳定。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐