小学生
最后登录1970-1-1
在线时间 小时
注册时间2021-12-23
|
第18章GPIO外部中断 用PC13切换LED问题,我的代码为什么不行,视屏上老师说在配套教程里有,可我也只找到PA0的代码, 先说明一点,我照着视屏上的代码写,写了PA0的是能正常切换LED灯的,但改为10后就不行了,不报错,就是灯一直亮宏定义
#define exti_pin_in GPIO_Pin_13
#define exti_port_in GPIOC
#define exti_port_clk RCC_APB2Periph_GPIOC
函数
#include "exti.h"
static void exti_nv_config(void)
{
NVIC_InitTypeDef nv_init;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
nv_init.NVIC_IRQChannel = EXTI15_10_IRQn;
nv_init.NVIC_IRQChannelPreemptionPriority = 1; //主优先级为1,
nv_init.NVIC_IRQChannelSubPriority = 0; //子优先级为0.
nv_init.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&nv_init);
}
void exti_key(void)
{
GPIO_InitTypeDef gpioinit;
EXTI_InitTypeDef exti_init;
exti_nv_config(); //配置好优先级
RCC_APB2PeriphClockCmd(exti_port_clk,ENABLE);
gpioinit.GPIO_Mode=GPIO_Mode_IN_FLOATING;
gpioinit.GPIO_Pin=exti_pin_in;
GPIO_Init(exti_port_in, &gpioinit);
//初始化GPIO哪一个端口的引脚为中断输入线,,打开AFIO端口时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13);
exti_init.EXTI_Line = EXTI_Line13;
exti_init.EXTI_Mode = EXTI_Mode_Interrupt;
exti_init.EXTI_Trigger =EXTI_Trigger_Rising;
exti_init.EXTI_LineCmd = ENABLE;
EXTI_Init(&exti_init);
}
中断函数
void EXTI0_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line13) !=0)
{
kg_led;
EXTI_ClearITPendingBit(EXTI_Line13);
}
}
大佬们知道有什么问题,
|
|