557 字
3 分钟
HC32F4A0 SPI及其DMA

支持特性#

image-20241105143829132

系统框图#

从下图来看,波特率发生器产生的SCLK信号由PCLK1时钟生成

image-20241105143941295

连接模式#

模式由应用场景决定,常用习惯为四线式用在MCU发送,三线式用在MCU接收

连接模式的设置由由stc_spi_init_t的成员变量u32WireMode控制

四线式#

SCLKSSMISOMOSI

文档中的主机模式

image-20241105145058537

三线式#

SCLKMISOMOSI,取消使用ss,使用此模式片选手动设置GPIO电平管理

此模式的妙用为:设置为此模式并设置MCU为从机模式,使用GPIO检查模组的SS电平便可以判断一帧数据帧是否发送完毕,以便进行下一步操作

文档中的时钟同步运行,并非网上所说的半双工的三线制,三线制为MISOMOSI复用但是依然有片选控制引脚

主从模式#

无论主从机管脚输入类型请设定为 CMOS 输入,输出请设定为高驱动力模式,设定请参照【通用 IO(GPIO)】章节通用 IO 特殊寄存器 PCR。

波特率#

当工作在主机模式,时钟由波特率发生器生成,时钟为PCLK1分频

分频由stc_spi_init_t的成员变量u32BaudRatePrescaler控制

数据格式#

奇偶校验#

奇偶校验由stc_spi_init_t的成员变量u32Parity控制

四种工作模式#

时钟极性(CPOL)#

  • CPOL = 0: 表示时钟在空闲状态时为低电平。当SPI通信开始时,时钟将从低变高。
  • CPOL = 1: 表示时钟在空闲状态时为高电平。当SPI通信开始时,时钟将从高变低。

时钟相位(CPHA)#

  • CPHA = 0: 表示数据在时钟的第一个边沿(对于CPOL=0是上升沿,对于CPOL=1是下降沿)被采样。
  • CPHA = 1: 表示数据在时钟的第二个边沿(对于CPOL=0是下降沿,对于CPOL=1是上升沿)被采样。这意味着数据需要在当前时钟周期的第一个边沿之后准备好。

一般常用模式0(flash) /模式1(外设),下图引用自通信协议(二)——SPI协议-网速123

aa1b19d3ceb1721c882a99214d65eafd

四种工作模式的设置由由stc_spi_init_t的成员变量u32SpiMode控制

HC32F4A0 SPI及其DMA
https://kozakemi.top/posts/hc32f4a0-spi及其dma/
作者
Kozakemi
发布于
2024-11-05
许可协议
CC BY-NC-SA 4.0