00. 目录

文章目录

  • 00. 目录
  • 01. SPI简介
  • 02. SPI特性
  • 03. SPI功能说明
  • 04. SPI中断
  • 05. 相关寄存器
    • 5.1 SPI 控制寄存器 1 (SPI_CR1) (不用于 I 2 S 模式)
    • 5.2 SPI 控制寄存器 2 (SPI_CR2)
    • 5.3 SPI 状态寄存器 (SPI_SR)
    • 5.4 SPI 数据寄存器 (SPI_DR)
    • 5.5 SPI_I 2 S 配置寄存器 (SPI_I2SCFGR)
    • 5.6 SPI_I 2 S 预分频器寄存器 (SPI_I2SPR)
  • 06. 附录
  • 07. 声明

01. SPI简介

SPI 接口提供两个主要功能,支持 SPI 协议或 I 2 S 音频协议。默认情况下,选择的是 SPI 功能。可通过软件将接口从 SPI 切换到 I2S。

串行外设接口 (SPI) 可与外部器件进行半双工/全双工的同步串行通信。该接口可配置为主模式,在这种情况下,它可为外部从器件提供通信时钟 (SCK)。该接口还能够在多主模式配置下工作。

它可用于多种用途,包括基于双线的单工同步传输,其中一条可作为双向数据线,或使用CRC 校验实现可靠通信。

I2S 也是同步串行通信接口。它可满足四种不同音频标准的要求,包括 I 2 S Philips 标准、MSB 和 LSB 对齐标准,以及 PCM 标准。它可在全双工模式(使用 4 引脚)或半双工模式(使用 3 个引脚)下作为从器件或主器件工作。当 I 2 S 配置为通信主模式时,该接口可以向
外部从器件提供主时钟。

02. SPI特性

● 基于三条线的全双工同步传输
● 基于双线的单工同步传输,其中一条可作为双向数据线
● 8 位或 16 位传输帧格式选择
● 主模式或从模式操作
● 多主模式功能
● 8 个主模式波特率预分频器(最大值为 f PCLK /2)
● 从模式频率(最大值为 f PCLK /2)
● 对于主模式和从模式都可实现更快的通信
● 对于主模式和从模式都可通过硬件或软件进行 NSS 管理:动态切换主/从操作
● 可编程的时钟极性和相位
● 可编程的数据顺序,最先移位 MSB 或 LSB
● 可触发中断的专用发送和接收标志
● SPI 总线忙状态标志
● SPI TI 模式
● 用于确保可靠通信的硬件 CRC 功能:
— 在发送模式下可将 CRC 值作为最后一个字节发送
— 根据收到的最后一个字节自动进行 CRC 错误校验
● 可触发中断的主模式故障、上溢和 CRC 错误标志
● 具有 DMA 功能的 1 字节发送和接收缓冲器:发送和接收请求

03. SPI功能说明

通常,SPI 通过 4 个引脚与外部器件连接:
● MISO:主输入/从输出数据。此引脚可用于在从模式下发送数据和在主模式下接收数据。
● MOSI:主输出/从输入数据。此引脚可用于在主模式下发送数据和在从模式下接收数据。
● SCK:用于 SPI 主器件的串行时钟输出以及 SPI 从器件的串行时钟输入。
● NSS:从器件选择。这是用于选择从器件的可选引脚。此引脚用作“片选”,可让 SPI主器件与从器件进行单独通信,从而并避免数据线上的竞争。从器件的 NSS 输入可由主器件上的标准 IO 端口驱动。NSS 引脚在使能(SSOE 位)时还可用作输出,并可在SPI 处于主模式配置时驱动为低电平。通过这种方式,只要器件配置成 NSS 硬件管理模式,所有连接到该主器件 NSS 引脚的其它器件 NSS 引脚都将呈现低电平,并因此而作为从器件。当配置为主模式,且 NSS 配置为输入(MSTR=1 且 SSOE=0)时,如果NSS 拉至低电平,SPI 将进入主模式故障状态:MSTR 位自动清零,并且器件配置为从模式。

04. SPI中断

05. 相关寄存器

5.1 SPI 控制寄存器 1 (SPI_CR1) (不用于 I 2 S 模式)

SPI control register 1
偏移地址:0x00
复位值:0x0000

5.2 SPI 控制寄存器 2 (SPI_CR2)

SPI control register 2
偏移地址:0x04
复位值:0x0000

5.3 SPI 状态寄存器 (SPI_SR)

SPI status register
偏移地址:0x08
复位值:0x0002

5.4 SPI 数据寄存器 (SPI_DR)

SPI data register
偏移地址:0x0C
复位值:0x0000

5.5 SPI_I 2 S 配置寄存器 (SPI_I2SCFGR)

SPI_I 2 S configuration register
偏移地址:0x1C
复位值:0x0000

5.6 SPI_I 2 S 预分频器寄存器 (SPI_I2SPR)

SPI_I 2 S prescaler register
偏移地址:0x20
复位值:0000 0010 (0x0002)

06. 附录

6.1 【STM32】STM32系列教程汇总

网址:【STM32】STM32系列教程汇总

07. 声明

【STM32】SPI简介相关推荐

  1. STM32 SPI详解

    目录 1.SPI简介 2.SPI特点 2.1.SPI控制方式 2.2.SPI传输方式 2.3.SPI数据交换 2.4.SPI传输模式 3.工作机制 3.1.相关缩写 3.2.CPOL极性 3.3.CP ...

  2. 1. stm32 mcu简介

    1. stm32 mcu简介 1.1 stm32 mcu结构 1.2 STM32 MCU存储器映像 1.3 STM32 MCU系统时钟树 1.4 Cortex-M3简介 1.1 stm32 mcu结构 ...

  3. STM32 SPI通信协议详细讲解—小白入门

    文章目录 (一)SPI协议简介 (二)SPI物理层 (三)SPI协议层 3.1.SPI基本通信过程 3.2.通信的起始和终止信号 3.3.数据有效性 3.4.CPOL/CPHA及通信模式 (四)STM ...

  4. STM32 SPI介绍及CubeMX配置

    目录 一.SPI简介 二.SPI协议 物理层: 协议层: 1.SPI的基本通讯过程 2.通信模式 三.STM32中的SPI SPI框图: 1.通信引脚 2.时钟控制逻辑 3.数据控制逻辑 4.整体控制 ...

  5. STM32——SPI接口原理与配置

    一.SPI接口简介 SPI是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口,是Motoroal首先在其MC68HCXX系列处理器上定义的. SPI是一种 ...

  6. STM32 SPI的使用

    SPI基础知识 主从连接,从机片选可另外使用MCU的GPIO控制 一主多从 读和写同步进行.读的话需要写一个空字节. CPOL和CPHA的说明.时钟的极性和相位. CPOL用于定义时钟信号在空闲状态下 ...

  7. STM32 SPI难点浅析

    我用的是战舰STM32开发板,两个知识点,一:是STM32 SPI的原理:二:用STM32自带的SPI对外部flash(W25Q64)的读写. 一:STM32 SPI的原理       先上图: 主模 ...

  8. 解决STM32 SPI 半残废 NSS无法拉高

    众所周知,STM32  SPI是个半残废,NSS无法自动拉高,所以使用SPI 从机会一直使能,当主机是一对多的时候,就会出现SPI从机互相干扰的问题. 我利用GPIO中断,代替NSS引脚,使用过程如下 ...

  9. 关于STM32 SPI NSS的讨论

    源:关于STM32 SPI NSS的讨论 转载于:https://www.cnblogs.com/LittleTiger/p/8784643.html

最新文章

  1. 三星 android recovery,三星recovery模式怎么操作
  2. Oracle with子句的简单介绍.
  3. 对比3家平台,我总结了疫情数据可视化的8点经验
  4. 高中生活--第1篇--荣辱一身,悲尽兴来
  5. GNU编译优化级别-O -O1 -O2 -O3
  6. 技术运维的经营大法——对话阿里云MVP熊昌伟
  7. vb.net 读写文件
  8. MySQL还是h5储存数据_h5中五大存储方式
  9. JdbcTemplate简单介绍
  10. 微软05年面临的10大挑战
  11. 广工c语言试卷504,广工C语言试卷与答案.doc
  12. 超实用的桌面收纳盒!
  13. 《看不见的森林:林中自然笔记》书摘三
  14. 如何提高软件测试能力的19条建议,希望对你有用
  15. sx1278lora模块的常见问题解答
  16. Dreamweaver CS6 Mac破解版
  17. Scrapy学习第四课
  18. 项目启动报错No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 解决办法
  19. vue关于监听子组件接收从父组件传过来的动态值的问题
  20. Word中加载Mathtype

热门文章

  1. windows系统路径环境变量
  2. 实验9 结构程序设计 7-4 查找书籍
  3. Java黑皮书课后题第6章:*6.6(显示图案)编写方法显示如下图案:public static void displayPattern(int n)
  4. S2SH框架入门之使用struts2
  5. 剑指offer-跳台阶
  6. iTerm2 使用笔记
  7. python 皮尔森相关系数
  8. win7提示Xshell5提示缺少msvcp110.dll解决办法
  9. HttpClient学习系列 -- 学习总结
  10. MVC5+EF6 入门完整教程 总目录