从零开始学stm32(二)

从零开始学stm32(二)

​ 介绍完stm32后,开始正式学习stm32了。这里就不多对工程的创建描述了,想了解的可以参考网上的工程创建视频。学习stm32就少不了学习stm32的通用IO口模型。主要的内容包括GPIO的基本概念与原理、GPIO寄存器和AFIO。

GPIO基本概念与原理

​ GPIO称为通用输入输出接口,它的电平一般在3.3V,很多GPIO口兼容5V,每个GPIO引脚都可以通过软件的方式进行配置,实现不同的功能。通常一个GPIO引脚对应两个寄存器:输入寄存器输出寄存器(用于配置不同功能模式)。

​ I/O端口结构

请添加图片描述

GPIO功能与模式

  • 输入模式

    • 输入模拟

    • 浮空输入

    • 下拉输入

    • 上拉输入

    当IO口配置为浮空上拉/下拉输入时:

    • 输出驱动器被禁止
    • 施密特触发输入(TTL肖特基触发器)被激活
    • 根据输入配置(上拉,下拉或浮空)不同,弱上拉和若下拉电阻被连接
    • GPIO引脚上数据在每个APB2时钟被采样到输入数据寄存器
    • 对输入数据寄存器的访问可得到GPIO状态

    当IO口配置为模拟输入配置时:

    • 输出驱动器被禁止
    • 施密特触发输入(TTL肖特基触发器)被禁止
    • 弱上拉电阻和弱下拉电阻被禁止
    • 读取输入数据寄存器时为0
    • 实现每个模拟“IO"引脚上的零消耗
  • 输出模式

    • 开漏输出
    • 推挽输出

GPIO寄存器

  • CRL、CRH 端口配置低/高寄存器
  • IDR、ODR端口数据输入/输出寄存器
  • BSRR/BRR端口位设置/清除寄存器
  • LCKR 端口配置锁定寄存器

AFIO基本概念与原理

​ AFIO复用功能输入输出接口

引脚重映射

​ 一个外设的一你骄傲除了默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其他端口。

优点

​ 1、充分利用片内资源。

​ 2、方便PCB设计,减少信号交叉干扰。

​ 3、分时复用某些外设,虚拟的增加端口数目。

默认复用与重映射

​ 1、默认复用。只需开启相应的外设功能时钟,无序开启AFIO时钟。

​ 2、重映射。需要开启相应外设是时钟,并且开启AFIO时钟。

GPIO功能的简单应用

​ 对于GPIO口简单应用,常见的就是通过操作GPIO来实现LED灯的亮灭,如跑马灯实验。

​ 使能GPIO的

  • 使能外设相对应的时钟总线
  • 配置相应的寄存器参数
  • 初始化引脚
  • 控制与操作GPIO
void LedGpioInit(void)
{
    // 定义GPIO的结构体变量
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    // 使能LED的GPIO对应的时钟
    B_LED_GPIO_CLK_EN();

    GPIO_InitStruct.Pin = B_LED_GPIO_PIN;         // 选择LED的引脚
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;   // 设置为推挽输出模式
    GPIO_InitStruct.Pull = GPIO_PULLUP;           // 默认上拉
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;  // 引脚输出速度设置为慢

    // 初始化引脚配置
    HAL_GPIO_Init(B_LED_GPIO_PORT, &GPIO_InitStruct);

    // 默认LED灭:OFF-灭,ON-亮
    BLED(OFF);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花甲09

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值