STM32G0开发笔记-Platformio+libopencm3-按键和外部中断

news/2024/12/2 19:45:52/

【原文】https://makerinchina.cn/article_12434df0dc1e.html


title: STM32G0开发笔记-Platformio+libopencm3-按键和外部中断
tags:

  • STM32
  • MCU
  • STM32G070
  • libopencm3
  • MonkeyPi
  • exti
    categories:
    • STM32
      date: 2022-9-8 09:33:05

使用Platformio平台的libopencm3开发框架来开发STM32G0,下面为GPIO接按键的使用方式。

1 新建项目

  • 在PIO主页新建项目button,框架选择libopencm3,开发板选择 MonkeyPi_STM32_G070RB;
  • 新建完成后在src目录新建主程序文件main.c;
  • 然后更改项目文件platformio.ini的烧写和调试方式:
upload_protocol = cmsis-dap
debug_tool = cmsis-dap

2 轮询方式使用按键

  • 设置GPIO为输入模式
 //set gpio input buttongpio_mode_setup(GPIOC, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO11);
  • 获取按键输入状态
while (1)
{if(gpio_get(GPIOC,GPIO11)){gpio_toggle(GPIOC,GPIO12);}    
}  

使用gpio_get获取按键的状态;

3 外部中断方式使用按键

  • 设置GPIO外部中断
void button_setup(void)
{rcc_periph_clock_enable(RCC_GPIOC);nvic_enable_irq(NVIC_EXTI4_15_IRQ);gpio_mode_setup(GPIOC,GPIO_MODE_INPUT,GPIO_PUPD_NONE,GPIO11);exti_select_source(EXTI11, GPIOC);exti_set_trigger(EXTI11, EXTI_TRIGGER_FALLING);exti_enable_request(EXTI11);
}

设置GPIOC11外部中断,引脚设置为输入模式,然后开启中断,并设置中断下降沿触发方式;

  • 中断函数
/*** @brief EXTI4-15 Interrupt service routine.*/
void exti4_15_isr(void)
{exti_reset_request(EXTI11);gpio_toggle(GPIOC, GPIO12);
}

外部中断4-15共用中断函数exti4_15_isr;


http://www.ppmy.cn/news/307038.html

相关文章

STM32G4系列MCU学习笔记:按键模块

第一次以写博客的方式记录自己在嵌入式学习过程中的学习经历和踩的那些坑~ Day1 那么开始叭! STM32G4系列MCU学习笔记:按键模块 前言一、硬件操作1. 原理图2. 硬件分析3. 初始化代码 二、按键模块的驱动层实现1. 硬件框图2. 按键驱动层代码实现3. 计时操…

服务器32g系统为什么显示3g,使用32G内存的电脑是什么样的体验?

以前因为工作关系接触过很多大内存服务器。也帮土豪朋友配32G的电脑(一个主机加过近万元) 32G内存电脑和16G差别大么? 相同的配置下,区别不会很大。16G内存目前完全可以满足一般家庭对电脑的99%的需求。 个人用的pc最吃配置的还是游戏和设计类用户。但无…

STM32G431简介

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

stm32g474教程_STM32G474 DAC使用DMA不输出的解决办法/汗

STM32G474 DAC使用DMA不输出的解决办法/汗 [复制链接] 今天准备使用STM32G474的DAC输出CHIRP信号,结果调了一天才调通,原因只是因为2个小小的问题 第一个问题是DMA设置是periperal处要选WORD image.png (32.29 KB, 下载次数: 0) 2020-9-6 19:14 上传 第二…

【STM32G0】按键控制LED亮灭

目录 硬件介绍STM32CubeMX新建工程时钟配置LED配置原理图CubeMX配置 按键KEY配置原理图CubeMX配置 生成工程添加用户代码实验现象 硬件介绍 STM32 NUCLEO-G071RB 开发板,软硬件资源详见官网介绍,主要是参考用户手册和电路图,利用STM32CubeMX…

STM32G4之按键实验

文章目录 前言一、按键原理二、程序编写1.按键扫描函数2.按键处理函数 总结 前言 一、按键原理 按键电路原理图(CT117E-M4产品手册) 这四个按键一端都接了VDD,所以默认高电平,当我们按下按键时,电路闭合,…

stm32g431使用CubeMX配置按键与使用

stm32g431使用CubeMX配置按键与使用 使用cubemx新建一个工程 配置八个LED的GPIO口为输出(GPIO_Output),四个按键的GPIO口为输入(GPIO_Input) 设置晶振 配置时钟 生成工程 工程生成之后在工程目录下新建这些文件夹和文件,这样方便…

【N32G457】 基于RT-Thread和N32G457的迷你键盘

此文为参加RT-Thread与国民技术联手推出N32G457 RT-Thread设计大赛期间作品。 由于疫情影响加上其他各种原因,本应在3月25日结束的比赛在今日终于完成了一个比较完整的作品,无论是否可以参赛,还是希望对大家有所帮助。 先放个图。 应用背景 …