打印

按键区分不出来

[复制链接]
453|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
你画我瞎|  楼主 | 2020-4-26 15:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pi, IO, GPIO, gp, TI
STM32F103芯片,做按键功能,不一样的端口(PORTA,PORTC),引脚都是pin8,我软件配置了,
却发现只能进一个中断,不知道为啥,电路都是一样的,估计是软件没有区分出来,不知道该怎么办,能否指导一下?,谢谢代码 如下



void  Button_GPIO_Init(void)
{        
                GPIO_InitTypeDef  GPIO_InitStructure;

                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE);

                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;         
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
                GPIO_Init(GPIOA, &GPIO_InitStructure);
            GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource8);

                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;         
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
                GPIO_Init(GPIOC, &GPIO_InitStructure);
            GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource8);        

                EXTI_InitTypeDef  EXTI_InitStructure;
               
                EXTI_InitStructure.EXTI_Line    =EXTI_Line8;
                EXTI_InitStructure.EXTI_Mode    = EXTI_Mode_Interrupt;
                EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
                EXTI_InitStructure.EXTI_LineCmd = ENABLE;
                EXTI_Init(&EXTI_InitStructure);
               
                NVIC_InitTypeDef  NVIC_InitStructure;
        
                NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
                NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
                NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
                NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
                NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
                NVIC_Init(&NVIC_InitStructure);
        }

void EXTI9_5_IRQHandler(void)
{
        if(EXTI_GetITStatus(EXTI_Line8) != RESET)
        {
        
         EXTI_ClearITPendingBit(EXTI_Line8);
        }
        
        if(EXTI_GetITStatus(EXTI_Line8) != RESET)
        {
        
         EXTI_ClearITPendingBit(EXTI_Line8);
        }
}

使用特权

评论回复
评论
1779564238 2020-5-21 17:47 回复TA
进中断之后再判断一次IO的状态,其实没必要用中断 

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

395

主题

395

帖子

0

粉丝