04----GD32E103RBT6----EXTI测试代码[测试通过]

bsp_exti.h

#ifndef __BSP_EXTI_H
#define __BSP_EXTI_H

#include "gd32e10x.h"

/*EN脚*/
#define EN_GPIO_PORT      GPIOA
#define EN_GPIO_CLK       RCU_GPIOA
#define EN_GPIO_PIN       GPIO_PIN_11

#define EN_EXTI_PORTSOURCE   GPIO_PORT_SOURCE_GPIOA
#define EN_EXTI_PINSOURCE    GPIO_PIN_SOURCE_11
#define EN_EXTI_LINE         EXTI_11

#define EN_IRQChannel        EXTI10_15_IRQn

#endif

bsp_exti.c

#include "bsp_exti.h"

/*!
    \brief      配置嵌套向量中断控制器NVIC
    \param[in]  none
    \param[out] none
    \retval     none
*/
static void NVIC_Configuration(void)
{
	nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2 );
	nvic_irq_enable(EN_IRQChannel,1,1);
}


/*!
    \brief      对EN用到的GPIO进行配置
    \param[in]  none
    \param[out] none
    \retval     none
*/
void  EN_GPIO_Configuration(void)
{
	rcu_periph_clock_enable(EN_GPIO_CLK);
	gpio_init(EN_GPIO_PORT, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, EN_GPIO_PIN);
}


/*!
    \brief      对EN用到的EXTI线进行配置,
    \param[in]  none
    \param[out] none
    \retval     none
*/
void EN_EXTI_Configuration(void)
{
	NVIC_Configuration();
	gpio_exti_source_select(EN_EXTI_PORTSOURCE,EN_EXTI_PINSOURCE);
	exti_init(EN_EXTI_LINE,EXTI_INTERRUPT, EXTI_TRIG_FALLING); 
}

main.c

void test_exti(void)
{
	LED_RED_GPIO_Config();
	EN_GPIO_Configuration();
	EN_EXTI_Configuration();
	while(1);
}

gd32e10x_it.c

void EXTI10_15_IRQHandler(void)
{
	if(exti_flag_get(EN_EXTI_LINE)==SET)
	{
		LED_RED_TOGGLE;
	}
	exti_flag_clear(EN_EXTI_LINE);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值