野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 22911|回复: 9

请教一个EXTI 按键的问题

[复制链接]
发表于 2014-4-23 22:53:28 | 显示全部楼层 |阅读模式
试过key1之后我试着把两个按键的程序合并起来,key1控制led1,key2控制led2,但是只有led1和key1有用,led2常亮,以下是部分代码,还请高手赐教。

exti.c部分:
#include "exti.h"



void NVIC_chushihua_PA0(void)
{
    //dingyi  jiegouti
    NVIC_InitTypeDef NVIC_PA0;
          //peizhi youxianji
          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
    //shezhi jiegouti chengyuan
    NVIC_PA0.NVIC_IRQChannel=EXTI0_IRQn;
    NVIC_PA0.NVIC_IRQChannelCmd=ENABLE;
    NVIC_PA0.NVIC_IRQChannelPreemptionPriority=0;
    NVIC_PA0.NVIC_IRQChannelSubPriority=0;


    //
    NVIC_Init(&NVIC_PA0);
       
         
}



void EXTI_chushihua_PA0(void)
{

   EXTI_InitTypeDef EXTI_PA0;
         GPIO_InitTypeDef GPIO_PA0;
         //
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA,ENABLE);
       
       
        /////IMPORTANT STEP!!!
       
        NVIC_chushihua_PA0();
       
        /////
         //
         GPIO_PA0.GPIO_Mode=GPIO_Mode_IPU;//SHANG LA MODE
         GPIO_PA0.GPIO_Pin=GPIO_Pin_0;
         GPIO_Init(GPIOA,&GPIO_PA0);
         
       
         //
         EXTI_PA0.EXTI_Line=EXTI_Line0;
         EXTI_PA0.EXTI_LineCmd=ENABLE;
         EXTI_PA0.EXTI_Mode=EXTI_Mode_Interrupt;
         EXTI_PA0.EXTI_Trigger=EXTI_Trigger_Falling ;
         
         //
         EXTI_Init(&EXTI_PA0);
         

}







////////////////////////////////////////////////////////
void NVIC_chushihua_PC13(void)
{
    //dingyi  jiegouti
    NVIC_InitTypeDef NVIC_PC13;
          //peizhi youxianji
          NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
    //shezhi jiegouti chengyuan
    NVIC_PC13.NVIC_IRQChannel=EXTI15_10_IRQn;
    NVIC_PC13.NVIC_IRQChannelCmd=ENABLE;
    NVIC_PC13.NVIC_IRQChannelPreemptionPriority=0;
    NVIC_PC13.NVIC_IRQChannelSubPriority=0;


    //
    NVIC_Init(&NVIC_PC13);
       
         
}



void EXTI_chushihua_PC13(void)
{

   EXTI_InitTypeDef EXTI_PC13;
         GPIO_InitTypeDef GPIO_PC13;
         //
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOC,ENABLE);
       
       
        /////IMPORTANT STEP!!!
       
        NVIC_chushihua_PC13();
       
        /////
         //
         GPIO_PC13.GPIO_Mode=GPIO_Mode_IPU;//SHANG LA MODE
         GPIO_PC13.GPIO_Pin=GPIO_Pin_13;
         GPIO_Init(GPIOC,&GPIO_PC13);
         
       
         //
         EXTI_PC13.EXTI_Line=EXTI_Line13;
         EXTI_PC13.EXTI_LineCmd=ENABLE;
         EXTI_PC13.EXTI_Mode=EXTI_Mode_Interrupt;
         EXTI_PC13.EXTI_Trigger=EXTI_Trigger_Falling ;
         
         //
         EXTI_Init(&EXTI_PC13);
         

}
       
中断程序部分:


void EXTI0_IRQHandler(void)
{

   if (EXTI_GetFlagStatus(EXTI_Line0) == SET)
         {
       GPIO_WriteBit(GPIOB,GPIO_Pin_0,(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_0)));
                 
                   EXTI_ClearITPendingBit(EXTI_Line0);  

   }

}




void EXTI15_10_IRQHandler(void)
{

   if (EXTI_GetFlagStatus(EXTI_Line13) == SET)
         {
       GPIO_WriteBit(GPIOF,GPIO_Pin_7,(1-GPIO_ReadOutputDataBit(GPIOF,GPIO_Pin_7)));
                 
                   EXTI_ClearITPendingBit(EXTI_Line13);  

   }

}



初学者,先谢谢了!



       
       

回复

使用道具 举报

发表于 2014-4-23 22:55:08 | 显示全部楼层
设断点,看看能不能进入中断呗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-23 23:28:33 | 显示全部楼层
栾端静 发表于 2014-4-23 22:55
设断点,看看能不能进入中断呗

额,请问设断点是怎么个设法呢?
回复 支持 反对

使用道具 举报

发表于 2014-4-24 08:50:05 | 显示全部楼层
mxpp 发表于 2014-4-23 23:28
额,请问设断点是怎么个设法呢?

debug状态右上角有个红色大点
回复 支持 反对

使用道具 举报

发表于 2014-4-24 09:48:15 | 显示全部楼层
调试一下看看能不能进入中断
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-24 15:08:11 | 显示全部楼层
栾端静 发表于 2014-4-23 22:55
设断点,看看能不能进入中断呗

谢谢!问题解决了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-24 15:08:31 | 显示全部楼层
刀_口 发表于 2014-4-24 08:50
debug状态右上角有个红色大点

谢谢!问题解决了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-24 15:09:05 | 显示全部楼层
魏秋月 发表于 2014-4-24 09:48
调试一下看看能不能进入中断

谢谢!问题解决了!
回复 支持 反对

使用道具 举报

发表于 2014-4-24 15:20:58 | 显示全部楼层
mxpp 发表于 2014-4-24 15:09
谢谢!问题解决了!

什么原因?
回复 支持 反对

使用道具 举报

发表于 2014-4-24 16:15:26 | 显示全部楼层
LZ最好把怎么解决问题说一下,不然对其它问题少年不好.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 01:55 , Processed in 0.031580 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表