0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32G0开发笔记:GPIO接按键的使用方式

CHANBAEK 来源:电子技术攻城狮 作者:MakerInChina.cn 2023-01-17 10:48 次阅读

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

1 新建项目

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

2 轮询方式使用按键

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

使用gpio_get获取按键的状态;

3 外部中断方式使用按键

  • 设置GPIO外部中断
1void button_setup(void)
 2{
 3  rcc_periph_clock_enable(RCC_GPIOC);
 4
 5  nvic_enable_irq(NVIC_EXTI4_15_IRQ);
 6
 7  gpio_mode_setup(GPIOC,
 8                GPIO_MODE_INPUT,
 9                GPIO_PUPD_NONE,
10                GPIO11);
11
12  exti_select_source(EXTI11, GPIOC);
13  exti_set_trigger(EXTI11, EXTI_TRIGGER_FALLING);
14  exti_enable_request(EXTI11);
15}

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

  • 中断函数
1/**
2 * @brief EXTI4-15 Interrupt service routine.
3 */
4void exti4_15_isr(void)
5{
6  exti_reset_request(EXTI11);
7
8  gpio_toggle(GPIOC, GPIO12);
9}

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2265

    文章

    10870

    浏览量

    354689
  • 中断
    +关注

    关注

    5

    文章

    895

    浏览量

    41384
  • 函数
    +关注

    关注

    3

    文章

    4303

    浏览量

    62409
  • 按键
    +关注

    关注

    4

    文章

    223

    浏览量

    57568
  • GPIO
    +关注

    关注

    16

    文章

    1196

    浏览量

    51896
收藏 人收藏

    评论

    相关推荐

    AN5096_介绍STM32G0系列硬件开发

    AN5096_介绍STM32G0系列硬件开发
    发表于 11-21 08:11 4次下载
    AN5096_介绍<b class='flag-5'>STM32G0</b>系列硬件<b class='flag-5'>开发</b>

    STM32G0开发笔记:FreeRTOS和FreeModbus库使用

    使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为FreeRTOS和FreeModbus库使用。
    的头像 发表于 01-16 14:44 5434次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:FreeRTOS和FreeModbus库使用

    STM32G0开发笔记:FreeRTOS和CLI组件使用

    使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为FreeRTOS和CLI组件使用。
    的头像 发表于 01-16 14:47 3397次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:FreeRTOS和CLI组件使用

    STM32G0开发笔记:使用FreeRTOS系统的队列Queue

    使用Platformio平台的libopencm3开发框架来开发STM32G0,下面为使用FreeRTOS系统的队列Queue。
    的头像 发表于 01-16 14:50 1324次阅读

    STM32G0开发笔记:使用FreeRTOS系统

    使用Platformio平台的libopencm3开发框架来开发STM32G0,下面为使用FreeRTOS系统。
    的头像 发表于 01-16 15:07 2314次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:使用FreeRTOS系统

    STM32G0开发笔记:使用ADC进行NTC温度采集

    使用Platformio平台的libopencm3开发框架来开发STM32G0,以下使用ADC进行NTC温度采集。
    的头像 发表于 01-16 15:12 9104次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:使用ADC进行NTC温度采集

    STM32G0开发笔记:用PWM来实现LED呼吸灯效果

    使用Platformio平台的libopencm3开发框架来开发STM32G0,下面使用PWM来实现LED呼吸灯效果。
    的头像 发表于 01-16 15:15 2203次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:用PWM来实现LED呼吸灯效果

    STM32G0开发笔记:EEPROM M24C02的使用方法

    使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为EEPROM M24C02的使用方法。
    的头像 发表于 01-16 15:19 2734次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:EEPROM M24C02的使用方法

    STM32G0开发笔记:SD卡模块的使用方法

    使用Platformio平台的libopencm3开发框架来开发STM32G0,下面介绍SD卡模块的使用方法。
    的头像 发表于 01-19 16:27 2233次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:SD卡模块的使用方法

    STM32G0开发笔记:SPI接口的基本使用

    使用Platformio平台的libopencm3开发框架来开发STM32G0,下面介绍SPI接口的基本使用。
    的头像 发表于 01-17 10:38 3022次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:SPI接口的基本使用

    STM32G0开发笔记:多通道ADC与DMA的使用

    使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为多通道ADC与DMA的使用。
    的头像 发表于 01-17 10:41 6818次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:多通道ADC与DMA的使用

    STM32G0开发笔记:定时器timer的基本使用方法

    使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为定时器timer的基本使用方法。
    的头像 发表于 01-17 10:43 3586次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:定时器timer的基本使用方法

    STM32G0开发笔记:串口中断的使用

    使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为串口中断的使用。
    的头像 发表于 01-17 10:46 2275次阅读

    STM32G0开发笔记:LED灯示例

    使用Platformio平台的libopencm3开发框架来开发STM32G0,下面为LED灯示例。
    的头像 发表于 01-17 10:52 1370次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:LED灯示例

    STM32G0开发笔记:使用libopencm3库

    使用Platformio平台的libopencm3开发框架来开发STM32G0开发环境为VSCode+PIO插件,这里以开发
    的头像 发表于 01-17 10:56 1840次阅读
    <b class='flag-5'>STM32G0</b><b class='flag-5'>开发笔记</b>:使用libopencm3库