STM32:GPIO配置和使用

这篇具有很好参考价值的文章主要介绍了STM32:GPIO配置和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、GPIO简介

1.1 GPIO的输入输出模式

1.1.1 输入模式

1.1.2 输出模式

二、GPIO的使用

2.1 引脚初始化

2.2 引脚使用


注:型号:STM32F407ZET6

一、GPIO简介

    GPIO:通用输入输出接口
    STM32上有A~H共8组,其中A~G7组每组有0~15号共16个引脚,H组有两个引脚。

1.1 GPIO的输入输出模式

1.1.1 输入模式

     1. 上拉输入
         上拉电阻:信号线通过电阻连接高电平,信号的初始值是高电平。
        STM32:GPIO配置和使用

     2. 下拉输入
             下拉电阻:信号线通过电阻连接低电平,信号的初始值为低电平。
            STM32:GPIO配置和使用

     3. 浮空输入
         浮空:信号线不连接高低电平,信号电压不确定。
     5. 模拟输入

1.1.2 输出模式

     1. 开漏输出(上拉或下拉)
     2. 复用开漏输出(上拉或下拉)
     3. 推挽输出(上拉或下拉)
     4. 复用推挽输出(上拉或下拉)

二、GPIO的使用

2.1 引脚初始化

    初始化步骤:
         1. 初始化一个GPIO配置结构体
            头文件(定义位置):#include "stm32f4xx_gpio.h"

STM32:GPIO配置和使用

         2. 使能时钟总线
       STM32:GPIO配置和使用
            头文件:#include "stm32f4xx_rcc.h"
            原型:void  RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState);
            参数:
             - RCC_AHB1Periph    外围设备,可选项在定义的注释中 
             - NewState        时钟新状态,ENABLE、DISABLE

         3. 配置这个GPIO配置结构体
             - GPIO_Pin    初始化的引脚号                
                 可选项:GPIO_Pin_0~GPIO_Pin_15,GPIO_Pin_All
             - GPIO_Mode    输入输出模式
                 - GPIO_Mode_IN    输入模式
                 - GPIO_Mode_OUT    输出模式
                 - GPIO_Mode_AF    复用模式
                 - GPIO_Mode_AN    模拟模式
             - GPIO_Speed    工作速度(速度越快,功耗越高)
                 - GPIO_Low_Speed        低速,2MHz
                 - GPIO_Medium_Speed    中速,25MHz
                 - GPIO_Fast_Speed        快速,50MHz
                 - GPIO_High_Speed        高速,100MHz
             - GPIO_OType    输出模式
                - GPIO_OType_PP    推挽输出
                 - GPIO_OType_OD    开漏输出
             - GPIO_PuPd
                 - GPIO_PuPd_NOPULL        浮空
                 - GPIO_PuPd_UP                上拉
                 - GPIO_PuPd_DOWN          下拉

         4. 调用初始化函数完场初始化
             头文件:#include "stm32f4xx_gpio.h"
            原型:void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
            参数:
             - GPIOx    引脚所在组,GPIOA~GPIOG
             - GPIO_InitStruct    配置结构体的指针

示例代码:

//按键初始化
void Init_Key(void)
{
    //初始化配置结构体
    GPIO_InitTypeDef Init_Struct_KEY0;
    
    //使能时钟
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
    
    //结构体配置
    Init_Struct_KEY0.GPIO_Mode = GPIO_Mode_IN;
    Init_Struct_KEY0.GPIO_Pin = GPIO_Pin_0;
    Init_Struct_KEY0.GPIO_PuPd = GPIO_PuPd_UP;
    Init_Struct_KEY0.GPIO_Speed = GPIO_High_Speed;
    
    //调用函数完成初始化
    GPIO_Init(GPIOA,&Init_Struct_KEY0);
}

//LED灯初始化
void Tiit_LED(void)
{
    //初始化配置结构体
    GPIO_InitTypeDef Init_Struct_LED0_1;
    
    //使能时钟
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF,ENABLE);
    
    //结构体配置
    Init_Struct_LED0_1.GPIO_Mode = GPIO_Mode_OUT;        //输出模式
    Init_Struct_LED0_1.GPIO_Pin = GPIO_Pin_9;            //9号引脚
    Init_Struct_LED0_1.GPIO_OType = GPIO_OType_PP;        //推挽输出
    Init_Struct_LED0_1.GPIO_PuPd = GPIO_PuPd_NOPULL;    //浮空
    Init_Struct_LED0_1.GPIO_Speed = GPIO_High_Speed;    //高速
    
    //调用函数完成初始化
    GPIO_Init(GPIOF,&Init_Struct_LED0_1);
    
    //关灯
    GPIO_SetBits(GPIOF,GPIO_Pin_9);
}    

2.2 引脚使用

    头文件:#include "stm32f4xx_gpio.h"
    读引脚状态:
        读一个引脚:uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
        读一组引脚:uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
    设置引脚状态:
        置位:void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
        复位:void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);文章来源地址https://www.toymoban.com/news/detail-482499.html

到了这里,关于STM32:GPIO配置和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32——关于GPIO口的输出方式和输入方式

    在STM32中,我们会要使用程序来对I/O口进行控制,当我们使用I/O口时,我们就需要知道在程序中我们需要这个I/O口来实现什么功能,是输入还是输出。   1、使用输出模式 I/O口常用的输出方式有推挽输出和开漏输出。 (1)推挽输出(GPIO_Mode_Out_PP):可以输出高、低电平,连接数

    2024年02月09日
    浏览(44)
  • 【STM32教程】第二章 通用输入输出口GPIO

    资料下载链接: 链接:https://pan.baidu.com/s/1hsIibEmsB91xFclJd-YTYA?pwd=jauj  提取码:jauj    GPIO(General Purpose Input Output)意思是通用输入输出口可配置为8种输入输出模式,其引脚电平:0V~3.3V,部分引脚可容忍5V(容忍5V的意思是可以在这个端口输入5V,相当于输入一个高电平,而输

    2024年02月09日
    浏览(47)
  • 【STM32零基础入门教程03】GPIO输入输出之GPIO框图分析

             本章节主要讲解点亮LED的基本原理,以及GPIO框图的讲解。         首先我们查看原理图,观察电路图中LED的连接情况,如下图可以看出我们的板子中LED一端通过限流电阻连接的PB0另一端连接的是高电平VCC,那么我们将PB0位置接地是不是灯就亮了,那我们就想

    2024年02月14日
    浏览(53)
  • 一眼就能看懂STM32的外设GPIO(通用输入输出)

    GPIO,简称通用输入输出,关键在于他是通用的。任何外设都可以用它,他的主要目的在于控制的IO,输出或由外部输入高低电平,与之对应的是AFIO的复用输入输出,当用到引脚的第二个功能的时候,就需要启用它; 你只需要记住他:他是控制引脚(IO口)的输入输出功能,高

    2024年02月04日
    浏览(41)
  • 嵌入式-Stm32-江科大基于标准库的GPIO通用输入输出口

    (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》) 下文图都是从参考手册借阅:STM32F10xxx(中文),大概页数是110/775左右 GPIO (General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V(有FT标识) 输出模式 下可控

    2024年01月17日
    浏览(56)
  • STM32对GPIO进行基础输出操作:点亮LED灯并闪烁,跑马流水灯(标准库GPIO输出模式)

    操作STM32的GPIO需要三个步骤 第一步:RCC开启时钟 第二步:使用GPIO_Init函数初始化GPIO 第三步:使用输出或输入的函数控制GPIO口 这三个函数分别是使能或失能AHB、APB1、APB2外设时钟控制。 GPIO复位函数 DeInit复位指定的GPIO外设 AFIODeInit函数,可以复位AFIO外设 GPIO_Init函数是通过结

    2024年02月03日
    浏览(45)
  • STM32 寄存器配置笔记——GPIO配置输出

           本文主要介绍GPIO 作为输出时的寄存器配置。包括时钟配置,输出模式配置。以STM32F10xxx系列为例,配置PA8、PD2端口作为输出,输出高/低电平。         1)GPIO外设时钟          通过查找STM32F10xxx中文参考手册得知,GPIO PORT口的时钟配置在RCC_APB2ENR寄存器的第2~6位,

    2024年01月24日
    浏览(67)
  • 从零开始手搓一个STM32与机智云的小项目——GPIO的输入输出

    上一篇中,对整个板子的硬件组成做了一个简单的介绍,本文开始进入程序编写的环节,首先来搞定最简单的GPIO输入输出控制。 GPIO全称叫做通用输入输出接口,它是单片机内核、片上外设与外部电路连接的桥梁,是单片机与外界进行数据交换的通道。 GPIO的端口号是从PA、

    2024年02月08日
    浏览(47)
  • STM32F407 GPIO口输出配置配置步骤

    STM32F407ZGT6 是意法半导体(STMicroelectronics)公司推出的一款高性能ARM Cortex-M4核心的32位微控制器(MCU)。它是 STM32F4 系列的一员,具备强大的处理能力和丰富的外设功能,适用于各种应用领域。 说明:STM32F4 的主频最高是 168Mhz,所以我们一般设置 PLLCLK 为 168Mhz(M=8,N=336,P=2),通

    2024年02月12日
    浏览(49)
  • STM32 F103C8T6学习笔记2:GPIO的认识—GPIO的基本输入输出—点亮一个LED

    今日继续学习使用  STM32 F103C8T6开发板 点亮一个LED灯,文章提供源码,测试工程,实验效果图,希望我的归纳总结会对大家有帮助~ 目录 GPIO的认识与分类 : 引脚安排整理: 定时器的引脚例举: 串口的引脚例举:  CAN串口通信: SPI通信: IIC通信:  其余引脚: 烧录引脚:

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包