OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2159|回复: 3

使用迷你开发板的PC11引脚作为外部中断失败,是不是由于该中断的优先级低于按键的或者是代码问题,所以无法触发?求助各位大佬

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2018-5-9
在线时间
1 小时
发表于 2018-5-9 09:12:12 | 显示全部楼层 |阅读模式
1金钱

/****  EXTI Control ****/  
void EXTI_GPIO_Init(void);  
#define Change_Flag 1
#define RCC_TOUCHOUT                        RCC_APB2Periph_GPIOC  
#define TOUCHOUT_PORT                       GPIOC  
#define TOUCHOUT_PINS                       GPIO_Pin_11  


  
#define TouchOut()                          GPIO_ReadInputDataBit(TOUCHOUT_PORT,TOUCHOUT_PINS)  


void EXTI_GPIO_Init(void)  
{  
    NVIC_InitTypeDef NVIC_InitStructure;  
    EXTI_InitTypeDef EXTI_InitStructure;  
    GPIO_InitTypeDef GPIO_InitStructure;   
      
    RCC_APB2PeriphClockCmd(RCC_TOUCHOUT|RCC_APB2Periph_AFIO, ENABLE);//打开GPIO AFIO的时钟
    GPIO_InitStructure.GPIO_Pin = TOUCHOUT_PINS;  
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;  
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;  
        GPIO_Init(TOUCHOUT_PORT, &GPIO_InitStructure);   
         
    EXTI_ClearITPendingBit(EXTI_Line11);  
    GPIO_EXTILineConfig(GPIO_PortSourceGPIOC,GPIO_PinSource11);//PC11  为GPIOC的PIN11  
    EXTI_InitStructure.EXTI_Line= EXTI_Line11; //PC11,为:EXTI_Line11  
    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_PriorityGroupConfig(NVIC_PriorityGroup_1);   //NVIC  
    NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;  
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority= 0;  
    NVIC_InitStructure.NVIC_IRQChannelSubPriority= 2;         
    NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;     
    NVIC_Init(&NVIC_InitStructure);   
}  

int EXTI15_10_IRQHandler(void)         //这里为:EXTI15_10 (外部中断号为10~15都在这里实现)  
{         
   if(EXTI_GetITStatus(EXTI_Line11) != RESET) //判断相应的中断号是否进入中断,如果有多个中断的话
  {  
        EXTI_ClearITPendingBit(EXTI_Line11);       //清中断
          if(Change_Flag!=TouchOut())
                {
                  return 1;
                }
           
  }  
     return 0;
}

if(EXTI15_10_IRQHandler() == 1)   
        {
              sprintf((char*)p,"ATK-8266发送数据02d\r\n",t/10);
                Show_Str(15+54,125,200,12,p,12,0);
                atk_8266_send_cmd("AT+CIPSEND=0,25","OK",200);  
                delay_ms(200);
                atk_8266_send_data(p,"OK",100);  
                timex=100;
        }

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-5-9 14:59:32 | 显示全部楼层
中断还能有返回值了?还能自己调用了?
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-5-10 01:42:19 | 显示全部楼层
不是,你这已经设置到最高优先级了。。。。
回复

使用道具 举报

6

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
207
金钱
207
注册时间
2018-4-18
在线时间
10 小时
发表于 2018-5-10 10:07:24 | 显示全部楼层
坐等答案
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 09:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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