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

2023-08-09  

使用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。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。