跳过正文

STM32 Hal库 学习

·1360 字

GPIO 配置
#

GPIO Pull-up/Pull-down
#

1. No pull-up and no pull-down (无上拉和下拉)
#

  • 含义: GPIO引脚在内部不连接任何电阻到电源(VDD)或地(GND)。
  • 适用场景:
    • 推挽输出 (Output Push Pull): 在这个模式下,GPIO的输出驱动电路可以强力地将引脚拉到高电平(连接到VDD)或强力地推到低电平(连接到GND)。引脚电平总是被明确定义的,永远不会浮空。因此,内部的上拉或下拉电阻是完全多余的。这就是你当前驱动LED的情况。
    • 模拟输入 (Analog Mode): 在用作ADC输入等模拟功能时,为了不影响外部模拟信号的精度,必须禁用内部的数字上拉/下拉电阻。
    • 外部已有上拉/下拉: 如果你的电路板上已经在外部为该引脚设计了上拉或下拉电阻,那么就应该禁用内部的,以避免两个电阻并联影响电路特性。

2. Pull-up (上拉)
#

  • 含义: 在GPIO内部,通过一个阻值较大的电阻(通常在30kΩ~50kΩ范围)将引脚连接到电源(VDD)。
  • 作用: 当引脚不受外部驱动时(例如作为输入,且外部没有信号),这个内部电阻会将其电平“拉”到高电平。
  • 典型适用场景:
    • 按键输入: 这是最经典的应用。将按键的一端接GPIO,另一端接地。当按键未按下时,引脚处于悬空状态,内部上拉电阻使其稳定在高电平。当按键按下时,引脚被直接拉到地,变为低电平。MCU通过检测电平从高到低的变化就知道按键被按下了。
    • I2C通信总线: I2C协议的SCL和SDA线是开漏(Open-Drain)输出。总线上的设备只能将线路拉低,不能主动推高。因此,总线需要上拉电阻来在空闲时将其恢复到高电平。在低速I2C中,可以使用MCU内部的上拉电阻。
    • 单总线协议 (e.g., Dallas 1-Wire): 与I2C类似,也需要一个上拉电阻。

3. Pull-down (下拉)
#

  • 含义: 在GPIO内部,通过一个电阻将引脚连接到地(GND)。
  • 作用: 当引脚不受外部驱动时,这个内部电阻会将其电平“拉”到低电平。
  • 典型适用场景:
    • 按键输入 (与上拉相反的逻辑): 将按键的一端接GPIO,另一端接电源(VDD)。当按键未按下时,内部下拉电阻使其稳定在低电平。当按键按下时,引脚被拉到高电平。
    • 需要默认低电平的输入: 在某些逻辑设计中,希望一个输入的默认状态或安全状态是低电平。

SPI 配置
#

Mode
#

  • 这里可以选择全双工、半双工、单传输、单接收等不同模式

Hardware NSS Signal
#

  • 这里选择是否使用硬件片选引脚
  • 对于在主模式下工作的器件,此配置允许多主模式功能,此时应使用GPIO控制从机的片选。
  • 对于设置为从模式的器件,NSS引脚用作传统的片选输入,在NSS引脚为低电平时片选该器件,为高电平时,取消对该器件的片选。
  • 实际应用中,若配置为主模式,希望通过主机的NSS引脚硬件自动片选从设备,还需在硬件上对NSS引脚设计上拉,以保证主机SPI关闭时,NSS引脚为高电平。

Configuration
#

Data Size
#

  • 每次传输的数据宽度
  • 一般来说是 8bit

First Bit
#

  • (高/低) 有效位先传输
  • MSB 高位优先(D7)
  • LSB 低位优先(D0)

Prescaler (for Baud Rate)
#

  • 系统频率预分频给波特率,SPI的通信速度

Clock Polarity (CPOL)
#

  • 时钟线(SCL)在空闲状态(没有数据传输时)是低电平还是高电平

Clock Phase (CPHA)
#

  • 数据在时钟的第几个边沿被采样(读取)
    • 1 Edge = 第 1 个边沿(即上升沿 Rising Edge)采样。
    • 2 Edge = 第 2 个边沿(即下降沿 Falling Edge)采样。

中间件相关配置
#

NFC4 配置
#

2025.12.01

针对st25dv系列芯片:选用中间件 X-CUBE-NFC4

mode
#

需要勾上两个勾:Board Part NFC & Board Support STM32Cube Custom BSP Drivers (软件包也是下这两个就行,这里是3.0.0版本)

Platform Settings
#

手动配置三个项目:LPD & I2C & GPO

Haley
作者
Haley