STM32G431之点灯和按键配置

发布者:uioo9158最新更新时间:2023-09-26 来源: elecfans关键字:点灯 手机看文章 扫描二维码
随时随地手机看文章

  STM32系列32位微控制器基于Arm® Cortex®-M处理器,旨在为MCU用户提供新的开发自由度。它包括一系列产品,集高性能、实时功能、数字信号处理、低功耗/低电压操作、连接性等特性于一身,同时还保持了集成度高和易于开发的特点。

poYBAGN-v8SAEfwRAAEv-WDufTA803.png#pic_center

1.硬件接口

  STM32G431开发板有一个用户按钮和LED灯。
  根据原理图,LD2和PA5相连,想要点亮LED则PA5应该为高电平

pYYBAGN-v8WAVRpyAAGgTQj67Sw828.png#pic_center

  用户按键B1和PC13相连,按下为高电平;

poYBAGN-v8WAZ6pCAACIiru_Kps887.png#pic_center

2.软件设计

2.1 芯片型号选择

  本示例所使用芯片型号为:STM32G431RBT6;128KB flash 和32KB SRAM,工作频率高达170MHz。

pYYBAGN-v8aARQOzAAF0-ZKn44w402.png#pic_center

2.2 时钟配置

poYBAGN-v8eANmHtAADVgAZ7He4753.png#pic_centerpYYBAGN-v8eAMQt_AAHzg0v28KY160.png#pic_center

2.3 GPIO配置

poYBAGN-v8iAZ7pvAAC3Wkp2SiQ218.png#pic_centerpYYBAGN-v8mAVTyJAACgv6rAu3g962.png#pic_center

2.4 生成代码

poYBAGN-v8mALv6pAADouJuYYjU309.png#pic_centerpYYBAGN-v8qAI_5YAACxlshTgRU929.png#pic_center

2.5 LED和按钮引脚配置

poYBAGN-v8qAPNjRAANYvCssSbU815.png#pic_center

2.6 获取按键值函数编写


/*获取按键值*/
uint8_t Get_KeyVal(void)
{
  uint8_t static stat=0;
  if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin)==1 && stat==0)//判断按键是否按下
  {
    HAL_Delay(20);//延时消抖
    stat=1;
    if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin))return 1;
  }
  else if(HAL_GPIO_ReadPin(USER_GPIO_Port,USER_Pin)==0)
  {
    stat=0;
  }
  return 0;
}


2.7 主函数


  uint8_t key;
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    key=Get_KeyVal();
    if(key)
    {
      HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
    }
  }

pYYBAGN-v8uAcrlUAAIV8LfEE6E492.png#pic_centerpoYBAGN-v82AGk-_AAshA1mcwUw922.png#pic_center


  开发板本身集成ST_Link下载器,只需安装ST_Link驱动即可直接下载。


关键字:点灯 引用地址:STM32G431之点灯和按键配置

上一篇:浅谈STM32 模数转换器 (ADC)(下)
下一篇:基于STM32H7 MCU的智能家居语音接口参考设计

推荐阅读最新更新时间:2024-11-03 14:25

[单片机框架][bsp层][AT32F415][bsp_key] 按键KEY配置和使用
按键的基本原理是设置单片机IO口(PB0-PB3)为输入状态,如DDRB = 0XF0(方向寄存器,“1”为输出,“0”为输入); 单片机一直检测按键端口(PB0-PB3)的状态,当端口为低电平时(即按键按下),实行相应的动作(比如控制LED灯)。 原理就是这么回事,但是正真实现时,按键会有抖动,要进行按键去抖,下图为按键按下时的抖动图。 按键实行一个动作过程是需要一定时间的,一般为100mS-1S左右,而一个单片机执行一个机器周期的时间很短,时钟为10MH的周期为0.1μs,这样按键每一次动作程序就会多次检测按键,出现误判(一次按下,多次动作)。 代码将讲解如何实现按键扫描功能,注册按键事件(单击/双击/长按/长
[单片机]
STM32学习笔记2——GPIO点灯
学会了建立建立工程,接下来一定是迫不及待的想用自己的开发板大显身手了吧。别急,慢慢来。在C语言学习时,你最先编译的一定是那条永恒经典的代码,对,就是Hello World——简单、明了,而且能直观的看见现象。在STM32上也有一个简单、明了,而且能直观的看见现象的程序——点灯。这就是我们现在的hello world,让我们从他开始学习吧!!! 学习 点灯我们要用到的就是控制我们需要的I/O口,所以,让我们先来看一下STM32F的GPIO端口。在STM32F0系列微控制器的每个GPIO端口有:两个32位配置寄存器(GPIOx_OTYPER和GPIOx_MODER)、两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR)、
[单片机]
STM32学习笔记2——GPIO<font color='red'>点灯</font>
基于STM32F103C8T6的PWM信号控制电机驱动器与点灯代码实例
STM32是一系列由STMicroelectronics生产的32位ARM微控制器。它们被广泛应用于各种应用领域,如工业控制、汽车电子、嵌入式系统、通讯、医疗设备等。STM32具有低功耗、高性能、高可靠性的特点,支持多种通信接口和众多的外设,可满足不同应用领域的需求。 STM32F103器件采用Cortex-M3内核,CPU最高速度达72 MHz。该产品系列具有16KB ~ 1MB Flash、多种控制外设、USB全速接口和CAN。 STM32F103C8T6是一款基于ARM Cortex-M 内核STM32系列的32位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40°C ~ 85°C。STM
[单片机]
基于STM32F103C8T6的PWM信号控制电机驱动器与<font color='red'>点灯</font>代码实例
51单片机汇编——延时和点灯
前言 这篇文章主要是看视频学习51汇编,但是我的环境总是配置不好,出现了这个问题(keil2+vdmagdi.exe+Proteus),有懂的小伙伴可以帮助一下我 ^.^ 一、延时程序 1.1 延时程序的简介和分类 在单片机的控制应用中,常有延时的需要,CPU 过一段时间再去做某件事,称之为延迟。延时有两种方法,即软件延时和硬件延时 硬件延时是通过定时/计数器(中断程序)来实现的,这种方法不占用 CPU 的工作时间 软件延时一般采用循环程序,通过 CPU 执行一个具有固定延迟时间的循环体来实现的 1.2 软件延时 1、机器周期数 延时程序的延时时间主要与两个因素有关,一是所用晶振,二是延时程序中的循环次数,一旦晶振确定之后
[单片机]
PIC单片机编程 (点灯程序)
IO口控制 方向寄存器 TRISA~TRISAE 比如 TRISB=0x00; // 1为输入,0为输出,这样就把portB端口全部设为输出 数据寄存器 PORTA~PORTE 比如 PORTB=0x01; // 1为置高,0为置低,这样就把portB1口置高,其它portB口置低 例:点灯程序 #include pic.h __CONFIG (0x3B31);// pic单片机需要进行寄存器配置,详见手册 void main() { TRISD=0xfe; // 把RD1端口设为输出 PORTD=0x01; // 把RD1端口置高 //RD1=1;
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved