【Stm32-F407】GPIO输出-使用寄存器点亮LED

1)GPIO简介

GPIO 英文全名为 General Purpose Intput Output,中文译为 通用输入输出端口 。GPIO是芯片上的引脚,可通过软件来控制这些引脚的高低电平,从而实现与外部通信等功能。

Stm32-F407ZGT6芯片图:在这里插入图片描述
在这里插入图片描述

以Stm32-F407ZGT6芯片为例,A、B、C、D四个区域共有144个引脚,这144个引脚中就有若干引脚是GPIO。

电源管脚: 引脚图中的 VDD、VSS、VREF+、VREF-、VSSA、VDDA 等都属于电源引脚;
晶振管脚:引脚图中的 PC14、PC15 和 OSC_IN、OSC_OUT 都属于晶振引脚;
复位管脚: 引脚图中的 NRST 属于复位引脚;
下载引脚:引脚图中的 PA13、PA14、PA15、PB3 和 PB4 属于 JTAG 或SW 下载引脚;
BOOT 引脚:引脚图中的 BOOT0 和 PB2(BOOT1)属于 BOOT 引脚;
GPIO管脚:引脚图中的 PA、PB、PC、PD 等均属于 GPIO 引脚。并且每一个端口都有 16 个引脚,比如 PA 端口,它有 PA0-PA15。其他的 PB、PC、PD 等端口是一样的。
STM32F407ZGT6管脚详细功能见 链接(提取码: 65uv)——EXCEL数据摘选自 P47-P59(提取码: 53dx)

GPIO内部结构图:
在这里插入图片描述

为2个保护二极管,当I/O口引脚处电势大于 V D D _ F T {V_{DD\_FT}} VDD_FT时,电流由I/O口引脚流入,流经a流出;当I/O口引脚处电势小于 V S S {V_{SS}} VSS时,电流由b流入,流经I/O口引脚流出;
主要用于初始化时延时芯片工作,避免一初始化芯片就开始工作。如初始化时若低电平有效,则初始化时让I/O引脚连接高电平 V D D {V_{DD}} VDD,此时电势差为0,芯片不工作,用上上拉电阻a主要是起到能量消耗作用;高电平有效同理。②的作用主要通过编程实现,需用到端口上拉/下拉寄存器(GPIOx_PUPDR)(x=A…I/)

GPIOx_PUPDR)(x=A…I/)寄存器:
在这里插入图片描述

⑥为输出数据寄存器(GPIOx_ODR) (x = A…I)

GPIOx_ODR (x = A…I)寄存器:在这里插入图片描述

⑦为置位/复位寄存器(GPIOx_BSRR)(x=A…I)

GPIOx_BSRR(x=A…I):
在这里插入图片描述

端口模式寄存器(GPIOx_MODER)(x=A…I)

GPIO口有输入输出两种功能,在实际编程时首先要表示出来GPIO口是用来输入还是用来输出,这时候要用到端口模式寄存器(GPIOx_MODER)(x=A…I):
在这里插入图片描述

③是用来控制输出模式的,需要用到GPIO 端口输出类型寄存器(GPIOx_OTYPER)(x=A…I):
在这里插入图片描述
的详细原理图如下:
在这里插入图片描述
在这里插入图片描述

④具有电压选择作用,输入模式下,I/O口进的电压(即TTL电平)实际上并不是一直稳定不变的,施密特触发器规定,高于1.8V为高电平转为数字信号1,低于1.8V为低电平转为数字信号0,最后放到输入数据寄存器⑤里:
在这里插入图片描述

2)寄存器版本点亮LED流程

步骤:
①初始化模式寄存器MODER
②初始化输出类型寄存器OTYPER
③初始化输出速度寄存器OSPEEDR
④初始化上拉/下拉寄存器PUPDR
⑤初始化置位复位寄存器和输出数据寄存器(BSRRODR)。
在这里插入图片描述
在这里插入图片描述

GPIO输出-使用寄存器点亮LED

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值