[经验分享] 【平头哥RVB2601开发板试用体验】 GPIO外部中断测试

TL-LED   2022-3-25 10:33 楼主

    在上篇GPIO驱动LED的基础上,测试下GPIO外部中断测试,通过LED灯的状态来查看是否进入中断。

 

    一、硬件部分

    1.1、使用开发板上的KEY1和KEY2按键来作为GPIO中断输入端。

    1.2、电路图部分

    电路上使用了,KEY1 -> PA11, KEY2 -> PA12。

      001.png

    

    1.3、LED使用上篇的RGB LED灯。

 

    二、软件部分

    KEY2上升沿触发,KEY1下降沿触发中断。

    2.1、eint.c

//eint.c
#include "board_config.h"
#include "drv/gpio_pin.h"
#include <drv/pin.h>
#include <aos/aos.h>
#include "led.h"


#define GPIO_PA11_MASK       ( 1 << PA11 )
#define GPIO_PA12_MASK       ( 1 << PA12 )

static csi_gpio_pin_t pin_pa11;
static csi_gpio_pin_t pin_pa12;

static void gpio_pin_pa11_interrupt_handler(csi_gpio_pin_t *pin, void *arg)
{
	ledr_tog();
}
static void gpio_pin_pa12_interrupt_handler(csi_gpio_pin_t *pin, void *arg)
{
	ledg_tog();
}

void eint_init(void)
{	
	csi_gpio_pin_init(&pin_pa11, PA11);
	csi_gpio_pin_attach_callback(&pin_pa11, gpio_pin_pa11_interrupt_handler, NULL);
	csi_gpio_pin_mode(&pin_pa11, GPIO_MODE_PULLUP);
	csi_gpio_pin_dir(&pin_pa11, GPIO_DIRECTION_INPUT);
	csi_gpio_pin_irq_mode(&pin_pa11, GPIO_IRQ_MODE_FALLING_EDGE);
	csi_gpio_pin_irq_enable(&pin_pa11, true);
	
	csi_gpio_pin_init(&pin_pa12, PA12);
	csi_gpio_pin_attach_callback(&pin_pa12, gpio_pin_pa12_interrupt_handler, NULL);
	csi_gpio_pin_mode(&pin_pa12, GPIO_MODE_PULLUP);
	csi_gpio_pin_dir(&pin_pa12, GPIO_DIRECTION_INPUT);
	csi_gpio_pin_irq_mode(&pin_pa12, GPIO_IRQ_MODE_RISING_EDGE);
	csi_gpio_pin_irq_enable(&pin_pa12, true);
}

    2.2、eint.h

#define EINT_H

void eint_init(void);

#endif

    2.3、main.c

/*
 * Copyright (C) 2019-2020 Alibaba Group Holding Limited
 */


#include <stdlib.h>
#include <string.h>
#include <aos/aos.h>
#include "aos/cli.h"
#include "main.h"
#include "app_init.h"
#include "oled.h"
#include "led.h"
#include "eint.h"

#define TAG "app"

int main(void)
{
    board_yoc_init();
    LOGD(TAG, "%s\n", aos_get_app_version());
    oled_init();
	led_init();
	eint_init();
    while (1) {
        //LOGD(TAG, "Hello world! YoC");
        //aos_msleep(1000);
		
		//led_test();
    }

    return 0;
}

    三、运行结果

    001.gif

回复评论 (1)

帖子有用

 

点赞  2022-3-31 23:06
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复