STMCU小助手
发布时间:2022-6-16 18:00
|
01. SPI简介 SPI 接口提供两个主要功能,支持 SPI 协议或 I 2 S 音频协议。默认情况下,选择的是 SPI 功能。可通过软件将接口从 SPI 切换到 I2S。: ?! f; t4 g3 e9 |" o- N 1 f' J% a+ R$ I- l 串行外设接口 (SPI) 可与外部器件进行半双工/全双工的同步串行通信。该接口可配置为主模式,在这种情况下,它可为外部从器件提供通信时钟 (SCK)。该接口还能够在多主模式配置下工作。 4 u6 _; M; J) c0 j7 ` H 它可用于多种用途,包括基于双线的单工同步传输,其中一条可作为双向数据线,或使用CRC 校验实现可靠通信。 . y8 [3 m' H0 X+ J# A- r% |+ Q I2S 也是同步串行通信接口。它可满足四种不同音频标准的要求,包括 I 2 S Philips 标准、MSB 和 LSB 对齐标准,以及 PCM 标准。它可在全双工模式(使用 4 引脚)或半双工模式(使用 3 个引脚)下作为从器件或主器件工作。当 I 2 S 配置为通信主模式时,该接口可以向 外部从器件提供主时钟。2 x/ v2 C7 E2 { g& N3 ?* j" a7 R3 y' S 02. SPI特性 ● 基于三条线的全双工同步传输 r! D: g( b- w* V9 b; g ● 基于双线的单工同步传输,其中一条可作为双向数据线 ● 8 位或 16 位传输帧格式选择 ● 主模式或从模式操作5 F t+ b1 k. e$ u ● 多主模式功能5 e+ X0 ?- ~4 ] ● 8 个主模式波特率预分频器(最大值为 f PCLK /2)& |- W" i1 y9 G- {* L6 h+ K# u ● 从模式频率(最大值为 f PCLK /2)0 r% h& Z8 z" t: ^% G6 Q9 I ● 对于主模式和从模式都可实现更快的通信 ● 对于主模式和从模式都可通过硬件或软件进行 NSS 管理:动态切换主/从操作 ● 可编程的时钟极性和相位 ● 可编程的数据顺序,最先移位 MSB 或 LSB ● 可触发中断的专用发送和接收标志- M# I1 ^0 r/ x% | ● SPI 总线忙状态标志; f# E9 E0 |% |+ M/ J7 Z/ y ● SPI TI 模式 ● 用于确保可靠通信的硬件 CRC 功能: — 在发送模式下可将 CRC 值作为最后一个字节发送# p) A7 E5 k1 e — 根据收到的最后一个字节自动进行 CRC 错误校验# U! j6 n2 L# [1 Y ● 可触发中断的主模式故障、上溢和 CRC 错误标志 ● 具有 DMA 功能的 1 字节发送和接收缓冲器:发送和接收请求 N7 V6 I! Q3 |0 h6 t 03. SPI功能说明 : k/ c' k8 G7 t1 E) [ E* @. h" E6 w
. R. T' x& F# w4 w7 A7 Q 通常,SPI 通过 4 个引脚与外部器件连接:+ V6 i5 q, L, Y9 S ● MISO:主输入/从输出数据。此引脚可用于在从模式下发送数据和在主模式下接收数据。4 W. n4 n7 h1 \9 p ● MOSI:主输出/从输入数据。此引脚可用于在主模式下发送数据和在从模式下接收数据。 ● SCK:用于 SPI 主器件的串行时钟输出以及 SPI 从器件的串行时钟输入。 ● NSS:从器件选择。这是用于选择从器件的可选引脚。此引脚用作“片选”,可让 SPI主器件与从器件进行单独通信,从而并避免数据线上的竞争。从器件的 NSS 输入可由主器件上的标准 IO 端口驱动。NSS 引脚在使能(SSOE 位)时还可用作输出,并可在SPI 处于主模式配置时驱动为低电平。通过这种方式,只要器件配置成 NSS 硬件管理模式,所有连接到该主器件 NSS 引脚的其它器件 NSS 引脚都将呈现低电平,并因此而作为从器件。当配置为主模式,且 NSS 配置为输入(MSTR=1 且 SSOE=0)时,如果NSS 拉至低电平,SPI 将进入主模式故障状态:MSTR 位自动清零,并且器件配置为从模式。9 j1 e9 v' z; X% }) C2 q ; k/ f0 r& B3 o ?$ H 04. SPI中断
05. 相关寄存器6 `& ]; X( I+ L$ k, R 5.1 SPI 控制寄存器 1 (SPI_CR1) (不用于 I 2 S 模式) SPI control register 1 偏移地址:0x00& }! `" h! V Q4 g4 f 复位值:0x0000
: u/ ~/ x( n8 b; ` 5.2 SPI 控制寄存器 2 (SPI_CR2) SPI control register 2 偏移地址:0x04 复位值:0x0000 u+ i) D1 n0 U* N( F- g: ]
: n3 e# X, `( u+ U1 ]7 y 5.3 SPI 状态寄存器 (SPI_SR)# y9 p- }& V" h0 n! j4 u& L( i SPI status register 偏移地址:0x08! I; j3 q3 U1 Q: v! ~ 复位值:0x00026 n) e" v" L( E. { 1 F; t; s( S: p& ]
5.4 SPI 数据寄存器 (SPI_DR) SPI data register _+ G W" z$ B* O3 m 偏移地址:0x0C 复位值:0x00009 m* o# l, A& [. K0 J 7 A$ Z7 W% d& Q1 ~, y
. n' `' g% Y& q' b" C% a 5.5 SPI_I 2 S 配置寄存器 (SPI_I2SCFGR): A2 H5 j1 S* |9 J, a SPI_I 2 S configuration register 偏移地址:0x1C0 p3 c+ ?! e) V+ p; [2 ] 复位值:0x0000
, v- Z( _7 C3 C: Q6 }% B9 p 5.6 SPI_I 2 S 预分频器寄存器 (SPI_I2SPR) SPI_I 2 S prescaler register 偏移地址:0x20 复位值:0000 0010 (0x0002). K* J0 i" D2 l" Q
4 e3 w6 ~! [0 K+ D* o& o C ; @+ J0 U6 p- Q# j# S( H8 E + u' }% d+ P% Y3 i. K |
【STM32H735G-DK 测评】STM32H735G-DK External Loder 编译和测试
Keil-MDK 在线调试设置断点的高级用法
请教下STM32N6570 怎么把分辨率改成320x240并可以全屏显示
【福利三:逢7发帖赢大礼】想要充分利用STM32H743VI片内的RAM空间(但并不顺利)
基于stm32平台上的IC-MU磁绝对值编码器SPI通讯和码盘数据处理
使用STM32 MCU和MPU连接PDM数字麦克风
SPI 32位宽DMA方式收发失败问题
SPI 高温读错最后一位?STM32F42xx 官方根治方案
经验分享 | LAT1470 SPI传输长度超过1024时出现异常的问题分析
经验分享 | 使用EXIT0同步触发SPI的DMA发送话题
微信公众号
手机版