资讯专栏INFORMATION COLUMN

cubemx配置stm32(三)__GPIO的输入输出

WilsonLiu95 / 2684人阅读

摘要:配置三的输入输出建立工程并进行核心配置根据文章使用配置二核心配置进行如下配置新建工程图形配置调试时钟信号图形配置时钟树图形配置调试接口检查配置配置详解配置选择输入输出比如就要配置输出,按键就要配置输入配置为输出时配置详

cubemx配置stm32(三)__GPIO的输入输出

1.建立工程并进行核心配置

根据文章2.使用cubemx配置stm32(二)__核心配置 进行如下配置:
CubeMX新建工程
CubeMX图形配置调试时钟信号
CubeMX图形配置时钟树
CubeMX图形配置调试接口

检查配置:

配置详解

1.配置选择输入输出

比如LED就要配置输出,按键就要配置输入

2.配置为输出时配置详解(此时我把此芯片PB1配置为输出,其他芯片其他引脚都可以,需要参考手中开发板的原理图)

(1).GPIO output level (引脚初始电平设置 )

  • High 输出初始化为高电平
  • Low 输出初始化为低电平
    (2).GPIO mode ( GPIO 输出模式)
  • Output Push pull 推挽输出 强高低电平,可以为IO设备供电
  • Output Open Drain 开漏输出模式 为强低电平,只有低电平可以为IO设备供电,但是高电平时只可以作为一个信号输出

(3).GPIO Pull-up/Pull-dowm (上拉下拉电阻)

  • No pull-up and no pull-down无上拉或下拉
  • pull-up 内部上拉电阻
  • Pull-dowm 内部下拉电阻

(4).Maxinum output speed(引脚速度设置)

  • Low 低速
  • Medium 中速
  • High 高速
  • Very High 高速

(5).User Label(用户标签)

  • 给引脚设置名称 如LED0

2.配置为输入时配置详解(此时我把此芯片PH3配置为输入,其他芯片其他引脚都可以,需要参考手中开发板的原理图)

(1).GPIO mode ( GPIO 输入模式)

  • Input mode 输入模式

(2).GPIO Pull-up/Pull-dowm (上拉下拉电阻)

  • No pull-up and no pull-down无上拉或下拉
  • pull-up 内部上拉电阻
  • Pull-dowm 内部下拉电阻

如下图,KEY0,KEY1一端接地,若按键按下就为低电平,我们应让按键没有按下时按键为高电平,所以要内部上拉,上拉后在不按键时信号为高电平

同理KEY_UP一端接VCC,若按键按下就为高电平,我们应让按键没有按下时按键为低电平,所以要内部下拉,下拉后在不按键时信号为低电平

(3).User Label(用户标签)

  • 给引脚设置名称 如KEY0

2.示例:配置PB1 PB0 PH3,并生成代码

选择好要生成那个软件的工程后,点击右上角"GENERATE CODE"

相关小工程代码示例看如下文章

3.关键代码讲解与应用

1.生成初始化函数代码(手动添加了注释)

static void MX_GPIO_Init(void) {   GPIO_InitTypeDef GPIO_InitStruct = {0};    /* GPIO Ports Clock Enable */   __HAL_RCC_GPIOC_CLK_ENABLE(); //使能GPIOC时钟,外部时钟输入使用PC14 PC15   __HAL_RCC_GPIOH_CLK_ENABLE(); //使能GPIOH时钟,因为按键使用PH3 外部时钟输入使用PH0 PH1   __HAL_RCC_GPIOB_CLK_ENABLE(); //使能GPIOB时钟,因为LED使用PB0 PB1   __HAL_RCC_GPIOA_CLK_ENABLE(); //使能GPIOA时钟,因为调试下载接口使用的PA13 PA14    /*Configure GPIO pin Output Level */  HAL_GPIO_WritePin(GPIOB, LED1_Pin|LED0_Pin, GPIO_PIN_SET);//LED1,LED0配置相同,可以同时配置 															//配置为初始电平高电平   /*Configure GPIO pin : KEY0_Pin */  //对按键进行GPIO初始化配置   GPIO_InitStruct.Pin = KEY0_Pin;//main.h中有#define KEY0_Pin GPIO_PIN_3 对应PH3的3   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;//模式为输入模式   GPIO_InitStruct.Pull = GPIO_PULLUP;//内部电阻上拉   HAL_GPIO_Init(KEY0_GPIO_Port, &GPIO_InitStruct);//根据上述内容初始化    /*Configure GPIO pins : LED1_Pin LED0_Pin */      //LED1,LED0配置相同,可以同时配置    GPIO_InitStruct.Pin = LED1_Pin|LED0_Pin;//这里配置两个LED,也就是GPIO的输出     //main.h中有#define LED0_Pin GPIO_PIN_1, #define LED1_Pin GPIO_PIN_0 对应PB1 PB0的1和0   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;//模式为推挽输出   GPIO_InitStruct.Pull = GPIO_PULLUP;//内部电阻上拉   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;//输出速度为低速   HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);//根据上述内容初始化  }

2.相关函数的应用

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/119234.html

相关文章

  • 使用STM32CubeMX初始化STM32F031F6Px系列

    摘要:利用可视化界面来进行的相关配置,所以时钟滴答定时器串口等就不用根据数据手册去操作标准库甚至是寄存器了,可以通过软件直接生成。 使用STM32CubeMX初始化ST...

    Zhuxy 评论0 收藏0
  • STM32】标准库与HAL库对照学习教程八--串口通信详解

    摘要:异步通信与同步通信异步通信异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。同步通信同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。配置串口设置为异步通信基础参数波特率为。 ...

    yck 评论0 收藏0
  • STM32+cubemx】0011 HAL库开发:I2C总线访问加速度传感器ADXL345

    摘要:本节我们介绍总线,并使用的总线来访问加速度传感器。主循环内添加循环读取的代码编译下载运行,可以看到数据输出变换传感器方向,可以看到测出的重力加速度的数值变化。 本节我们介绍I2C总线,并使用stm32的I2C总线来访问加速度传感器ADXL345。 1)I2C基础知识 I2C总线通信比较适合...

    paulli3 评论0 收藏0
  • STM32学习笔记 第二章 STM32资源介绍

    摘要:总线挂载的外设有等。外设地址映射片上外设区分为三条总线,根据外设速度的不同,不同总线挂载着不同的外设,挂载低速外设,和挂载高速外设。 第二章 STM32资源介绍 2...

    G9YH 评论0 收藏0
  • 基于STM32Cube MX开发TencentOS-Tiny软件包

    摘要:基于开发的软件包导师汪礼超学员崔林威摘要腾讯物联网操作系统是腾讯面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,可裁剪等特性。图中断函数处理进行生成工程配置,按如下界面进行配置,最后点击,并点击。 ...

    shiyang6017 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<