首页 > 其他分享 >GPIO介绍+点灯(寄存器+HAL库)

GPIO介绍+点灯(寄存器+HAL库)

时间:2024-06-15 14:29:44浏览次数:7  
标签:输出 HAL 推挽 模式 寄存器 GPIO 输入 pull

1. GPIO概述

GPIO(General-purpose input/output):通用型输入输出

简单理解就是我们可以控制输入输出的STM32引脚,统称为GPIO。GPIO存在的意义就是用程序控制或读取他们的输出或输入

1.1. GPIO总体说明

STM32有多组GPIO,比如我们使用的芯片:STM32F103ZET6共有 7 组GPIO端口,他们分别是GPIOx(x从A-G)每组控制16个引脚,共有 112个 GPIO引脚。

1.2. GPIO的8种工作模式

1.2.1. 输入模式(四种)

(1)浮空输入(Input floating)

(2)上拉输入(Input pull-up)

(3)下拉输入(Input-pull-down)

(4)模拟输入(Analog)

输入模式下可以读取端口的高低电平,用于读取外接按键,外接模拟信号的输入,ADC电压采集,模拟通信协议接受数据等。

1.2.2. 输出模式(四种)

(1)通用开漏输出(Output open-drain)

(2)通用推挽式输出(Output push-pull)

(3)推挽式复用功能(Alternate function push-pull)

(4)开漏复用功能(Alternate function open-drain)

输出模式下可以控制端口输出高电平低电平,用于驱动LED,蜂鸣器等,如果是大功率器件(比如电机),还需要加上驱动器(小电流控制大电流)。

1.3. GPIO 输出流程

1.3.1. 推挽输出

(1)输出模式下,输出控制器被激活;

(2)当GPIO为推挽输出模式:

输出数据寄存器上输出1 将激活P-MOS,输出高电平。

输出数据寄存器上输出0 将激活N-MOS,输出低电平。

1.3.2. 开漏输出

标签:输出,HAL,推挽,模式,寄存器,GPIO,输入,pull
From: https://blog.csdn.net/qq_58247745/article/details/139701871

相关文章

  • 本地搭建halo模板和插件开发简要步骤
    1.新建local配置文件,加载本地插件工程目录halo:plugin:runtime-mode:developmentfixed-plugin-path:#配置为插件绝对路径#-D:\myproject\hellodev\plugin-ylpro-D:\myproject\hellodev\plugin-links2.插件工程编写好处理模板的代码3.编......
  • STM32学习记录(二)————基本GPIO控制
    文章目录前言1.GPIO基础知识2.IO八种工作模式3固件库实现LED点灯前言一个学习STM32的小白有问题评论区或私信指出~1.GPIO基础知识GPIO(General-Purposeinput/output,通用输入/输出接口)用于感知外部信号(输入模式)和控制外部设备(输出模式)简单模块:LED,按键,蜂......
  • MDK5.14仿真STM32F407时无法查看外设寄存器的问题
    这几天用keilmdk5.14新建工程进行仿真时,进入Debug环境发现SystemViewer菜单显示空白,Peripherals菜单没有外设寄存器。如图1和图2所示。网上查了一下资料发现大多都是解释的STM32F103系列在MDK内的修改方式,但是我用的是STM32F407ZET6,就依葫芦画瓢,照着出一个修改的说明。  ......
  • 128个双路2.66GHz Intel Nehalem 四核处理器计算节点的HPC集群,其峰值计算是多少?
    每个IntelNehalem四核处理器的主频是2.66GHz,这意味着每个核每秒可以执行2.66×10^9次操作。每个处理器有四个核心,所以每个处理器每秒可以执行的操作次数是4×2.66×10^9。每个计算节点是双路的,即每个节点有两个这样的处理器,因此每个节点的峰值计算能力就是2×(4×2.66×10^9......
  • 【STM32F1例程2】GPIO外部中断输入
    1.实验说明无需连外部杜邦线,下载程序,全速运行,按右边按键看到LEDD1(PB4引脚驱动)亮暗能变化一次2.主要代码先上main.c#include"delay.h"#include"sys.h"//外部中断0配置,PA0脚产生外部中断是外部中断0voidEXTI0_Config(void){ EXTI_InitTypeDefEXTI_InitStructur......
  • [快速阅读七] Halcon里emphasize函数相关资料.
    时不时有人问我我的SSE优化Demo里emphasize(边缘强调)的原理是啥,有没有写博客,其实不是我不愿意写博客,而是那个东西太过于简单,我不想写博客。但是耐不住问的人多了,我就干脆复制点资料放在博客里吧,省的每次我还要去找点资料复制给人家。这个东西其实是Halcon里的一个算子,我......
  • 关于如何设置 TMOD (定时/计数 高低 共 8 位 寄存器)
    TMOD寄存器简介TMOD是8051单片机的定时器模式寄存器。它是一个8位寄存器,用于配置定时器/计数器的工作模式。TMOD的每一位有特定的含义。TMOD的结构如下:GATE|C/T|M1|M0|GATE|C/T|M1|M07|6|5|4|3|2|1|0GATE(位7和......
  • MSPM0——GPIO的使用
    在dl_gpio.h库函数文件中,有三个函数可以控制引脚状态。__STATIC_INLINEvoidDL_GPIO_setPins(GPIO_Regs*gpio,uint32_tpins)该函数为控制引脚输出高电平,按照本例程中LED的引脚,则可以写为DL_GPIO_setPins(LED1_PORT,LED1_PIN_14_PIN);__STATIC_INLINEvoidDL_GPIO_c......
  • 一文搞懂 ARM 64 系列: 寄存器
    ARM64中包含多种寄存器,下面介绍一些常见的寄存器。1通用寄存器ARM64包含31个64bit寄存器,记为X0~X30。每一个通用寄存器,它的低32bit都可以被访问,记为W0~W30。在这31个通用寄存器中,有2个寄存器比较特殊。X29寄存器被作为栈帧寄存器,也被称为FP(FramePointerRegister)。X3......
  • Android 13.0 hal层关于新增自定义hal模块功能实现
    1.前言在13.0的系统rom定制化开发中,在对hal模块进行开发时,需要通过添加自定义的hal模块来实现某些功能时,就需要添加hal模块的相关功能,接下来就来实现一个案例来供参考接下来就来具体实现这个功能2.hal层关于新增自定义hal模块功能实现的核心类hardware\interfaces\3.ha......