STM32G030C8T6:使用按键控制LED亮灭(外部中断)

这篇具有很好参考价值的文章主要介绍了STM32G030C8T6:使用按键控制LED亮灭(外部中断)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本专栏记录STM32开发各个功能的详细过程,方便自己后续查看,当然也供正在入门STM32单片机的兄弟们参考;

本小节的目标是,系统主频64 MHZ,采用高速外部晶振,通过KEY1 按键的PA0 引脚配置成中断输入引脚,PB9引脚配置成输出,每次按键,PA0 引脚就会进入一次外部中断,每进入一次中断服务程序,改变PB9 输出电平的高低,从而实现LED 灯的亮灭。
原理:通过KEY1按键的PA0引脚配置成中断输入引脚,PB9引脚配置成输出,每次按键,PA0引脚就会进入一次外部中断,每进入一次中断服务程序,改变PB9输出电平的高低,从而实现LED灯的亮灭。
涉及到的知识:GPIO外部中断输入,配置GPIO为输出引脚,STM32CubeMX的使用
我是将PB9引脚接的LED,所以本小节是以PB9为例记录的,如果需要将其他引脚配置为LED灯,那将PB4改为其他对应的引脚即可;

1 新建工程

点击File 菜单下的New Project

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

选择芯片型号,如下图所示先输入芯片型号,目前这边输入STM32G030C8,

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

双击选择,就确定了芯片型号,界面会变成如下图所示

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

2 配置SWD下载引脚

如下图所示,在Pinout&Configuration 栏目的System Core 下,先点击SYS,再勾选Serial Wire 框,
配置好SWD 下载引脚设置:

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

3 配置GPIO输出

按下图 的1,2,3 步骤完成PB4 引脚配置成GPIO 输出设置:

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

配置成功后如下图所示:
STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

4 配置RCC

如下图,先点击RCC,在HSE 配置中选择Crystal/Ceramic Resonator 外部晶振设

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

5 设置系统主频

如下图, 先点击Clock Configuration 栏目,按下图的1,2,3,4 步骤完成系统64MHZ 主频设置:

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

6 配置按键外部中断

如下图的1,2步骤完成PA0引脚配置成GPIO 外部中断输入设置:
STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

如下图1,2,3,4 步骤完成PA0 中断触发沿以及上下拉配置:
STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

都配置完成后,如下图所示:

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

7 外部中断使能

如下图 的1,2 步骤完成外部中断使能配置,这样PC13 引脚电平有变化就会产生中断了。

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

8 生成工程

按照下图的步骤,进行项目配置,项目名称和路径设置等,生成项目的类型选择STM32CubeIDE(我这里以STM32CubeIDE为例,如果你要试用keil5,那就选择MDK-RAM,如果要使用makefile,就选择Makefile),注意项目名称和路径不要有中文名;
STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

最后全部设置完毕后点击create code,生成项目代码:

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

生成的工程如下图所示:
STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

9 增加代码实现按键控制LED

增加代码实现PA0 引脚进入一次外部中断,改变PB9 输出电平的高低

点击上一步生成的.project文件,会打开STM32CubeIDE,然后在stm32g0xx.it.c中,找到外部中断服务程序,如下图所示:

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

然后,在外部中断服务程序中调用的HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0)内
部,找到HAL_GPIO_EXTI_Rising_Callback 这个上升沿回调函数,如下图所示:

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机
加入PB9 翻转输出就可以:

 HAL_GPIO_Togglepin(GPIOB,GPIO_PIN_9);//每次进入一次外部中断,实现PB9引脚翻转输出一次

STM32G030C8T6:使用按键控制LED亮灭(外部中断),STM32开发实战,stm32,嵌入式硬件,单片机

至此,编译并调试,即可成功案件控制LED开关;

当程序开始后,LED灯是亮着的,按下按键,LED会变灭,再次按下按键,LED会点亮;文章来源地址https://www.toymoban.com/news/detail-752091.html

到了这里,关于STM32G030C8T6:使用按键控制LED亮灭(外部中断)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • STM32F103C8T6 按键扫描输入

    第一章 STM32F103C8T6 点亮LED灯 系列文章目录 前言 一、原理  1.按键类型  2.按键消抖 3.IO口输入配置 1)模拟输出 2)浮空输入模式 3)下拉输入模式(PULL DOWN) 4)上拉输入模式(PULL UP) 二、代码部分 main.c key.c key.h 总结         上一章我们成功入门了STM32F103C8T6,今天我们来

    2023年04月23日
    浏览(77)
  • STM32G030F6P6 芯片实验 (一)

    淘宝搞了几片, 没试过 G系列, 试试感觉. 先搞片小系统版: 套 STM32F103C8T6小系统板格式. (1) Ref 有点跳, 从 STM32F103C8T6 系统板改的, 没重编号. (2) Type-C 纯给电, 砍了 16pin的, 直接换 6pin的。 (3) 测试LED放 B2。 (4) 测试底板用原来 STM32F103C8T6的。 直接用嘉立创EDA画了板, EDA用起来还可以

    2024年02月08日
    浏览(41)
  • 摇杆按键+SG90 实现舵机云台(STM32F103C8T6)

    STM32F103C8T6最小系统板*1 SG90舵机(180°)*2 摇杆按键*1 舵机支架*1 面包板*1(非必须) 杜邦线若干 类似这种的支架,不过需要自己裁切嵌入的部分 代码很简单,主要使用ADC双通道读取两个电位器的值(实际上就是电压),通过获取到的值的范围来确定上下左右,从而来改变两

    2024年02月14日
    浏览(54)
  • STM32C8T6控制智能小车代码

    本程序是在keil5软件下使用标准库编程的,纯自己手打,包含详细的代码注释。 首先就是PWM模块,次模块用于改变小车的转速,本项目用一个L98N电机驱动模块,将左边的两个轮子连接在一个L98N电机驱动模块输出引脚,将坐标的两个轮子连接在L298N的另外一个输出引脚,由此控

    2024年02月05日
    浏览(50)
  • 舵机控制(STM32F103C8T6)

            本文是以 STM32F103C8T6 作为主控芯片,通过PB6端口输出PWM,实现控制180°舵机。 (一)概述         舵机是一种位置伺服驱动器器,是一种带有输出轴的小装置。当我们向伺服器发送一个控制信号时,输出轴就可以转到特定的位置。只在控制信号持续不变,伺服机构就

    2023年04月09日
    浏览(56)
  • 【基于STM32F103C8T6的智能风扇控制】

    本次分享的是基于STM32F103的智能风扇的制作,相关的硬件和部分源码可看下面哦,需要成品的可私(创作不易,拒绝白嫖) 喜欢就给小殷一个关注和点赞吧 演示视频链接 1、按键模式下通过按键进行风扇档数改变一共设置为4档 2、自动模式下根据环境温度而改变温度的转速和

    2024年02月12日
    浏览(87)
  • STM32G030F6 (SOP-20)Cortex ® -M0+, 32KB Flash, 8KB RAM, 17 GPIOs

    淘宝淘了一批 STM32G030F6P6 SOP20.先备注一下, 还没想到能干嘛用. 手上的 STM32F103C6T6还剩一些. 一堆 “淘宝原厂STM32F103C8T6”, 还烫着手. 理解信息: ( 逐步补充 ) System Clock GPIOs USART Timer ADC I2C STM32G030F6 (SOP-20) Arm ® Cortex ® -M0+ 32-bit MCU, 32 KB Flash, 8 KB RAM, 2x USART, timers, ADC, comm. I/Fs

    2024年02月10日
    浏览(39)
  • STM32驱动串口屏,STM32F103C8T6串口发送指令控制HMI串口屏

    串口屏是一个集成了单片机的屏幕模块,采用的是TTL串口协议,可以直接通过对应指令控制屏幕, 本文采用的串口屏是陶晶驰T0系列的基本型,目的是通过单片机的串口来控制串口屏 上面仅是一部分常用的基础指令,更多更仔细的指令或者函数可以访问陶晶驰资料官网。 硬

    2024年02月13日
    浏览(49)
  • 【stm32c8t6多个串口同时使用】

    最近做的一个小项目会同时用到多个串口,不同串口连接不同外设根据不同控制指令来执行相应的功能(wifi、语音等)如何同时进行不同串口之间的配置原理和配置单个串口相同,下面就以三个串口中断分别来进行LED的控制,后面根据自己的需求将串口接在不同的外设上面就

    2024年02月15日
    浏览(42)
  • 基于STM32F103C8T6使用Arduino IDE编程闭环控制4个带编码器的有刷直流电机

    题记:标题有点长了,纯粹为了方便被检索到~~~本贴主要用于支持南方科技大学SDIM学院工业设计专业大三综合项目移动底盘学习,也是我自己按照费曼学习方法的一次尝试,用从底层搭建一个机器人底盘来复习自动控制原理。         由于工业设计专业没有开设嵌入式课程

    2024年02月05日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包