野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14553|回复: 8

求助。配置的按键中断K1可以运行,K2不能

[复制链接]
发表于 2016-8-28 11:07:13 | 显示全部楼层 |阅读模式
直接上代码
  1. void KEY_GPIO_Config(void)
  2. {
  3.         GPIO_InitTypeDef   GPIO_InitStruct;
  4.         NVIC_InitTypeDef          NVIC_InitStructure;
  5.         EXTI_InitTypeDef          EXTI_InitStructure;
  6.        
  7.         RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOC,ENABLE);
  8.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  9.        
  10.         GPIO_InitStruct.GPIO_Pin                =  GPIO_Pin_0;
  11.         GPIO_InitStruct.GPIO_Mode                =  GPIO_Mode_IN;
  12.         GPIO_InitStruct.GPIO_PuPd                =  GPIO_PuPd_DOWN;
  13.         GPIO_Init(GPIOA , &GPIO_InitStruct);
  14.        
  15.         GPIO_InitStruct.GPIO_Pin                =  GPIO_Pin_13;
  16.         GPIO_InitStruct.GPIO_Mode                =  GPIO_Mode_IN;
  17.         GPIO_InitStruct.GPIO_PuPd                =  GPIO_PuPd_DOWN;
  18.         GPIO_Init(GPIOC , &GPIO_InitStruct);
  19.        
  20.         NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
  21.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  22.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  23.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  24.   NVIC_Init(&NVIC_InitStructure);
  25.        
  26.         NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;
  27.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
  28.         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
  29.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  30.   NVIC_Init(&NVIC_InitStructure);
  31.        
  32.         /* ᬽó EXTI ÖD¶ÏÔ′ μ½key1òy½Å */
  33.         SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA,EXTI_PinSource0);
  34.        
  35.         EXTI_InitStructure.EXTI_Line                 = EXTI_Line0;
  36.         EXTI_InitStructure.EXTI_Mode                 = EXTI_Mode_Interrupt;
  37.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  38.         EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  39.         EXTI_Init(&EXTI_InitStructure);
  40.        
  41.         /* ᬽó EXTI ÖD¶ÏÔ′ μ½key2 òy½Å */
  42.         SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC,EXTI_PinSource13);
  43.        
  44.         EXTI_InitStructure.EXTI_Line                 = EXTI_Line13;
  45.         EXTI_InitStructure.EXTI_Mode                 = EXTI_Mode_Interrupt;
  46.         EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  47.         EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  48.         EXTI_Init(&EXTI_InitStructure);
  49. }
复制代码
以上是按键配置
  1. void EXTI0_IRQHandler(void)
  2. {
  3.         if(EXTI_GetITStatus(EXTI_Line0) != RESET)
  4.         {       
  5.                 LED_G_Toggle;
  6.                 EXTI_ClearITPendingBit(EXTI_Line0);     
  7.         }  
  8. }

  9. void EXTI15_10_IRQHandler(void)
  10. {
  11.         if(EXTI_GetITStatus(EXTI_Line13) != RESET)
  12.         {       
  13.                 LED_R_Toggle;
  14.                 EXTI_ClearITPendingBit(EXTI_Line13);     
  15.         }  
  16. }
复制代码
以上是中断里面的

按下K1,绿灯闪烁,这是可以的
按下K2,没反应。
下载例程两个按键均有用
回复

使用道具 举报

发表于 2016-8-28 11:11:54 来自手机 | 显示全部楼层
用配套的历程对比下。
回复 支持 反对

使用道具 举报

发表于 2016-8-28 11:14:47 来自手机 | 显示全部楼层
我在视频里面演示的是可以。
回复 支持 反对

使用道具 举报

发表于 2016-8-28 11:19:50 来自手机 | 显示全部楼层
看不出啥毛病啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-28 11:21:57 | 显示全部楼层
发现问题了,少了使能SYSCFG时钟函数
但是为什么K1能行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-28 11:26:12 | 显示全部楼层
fire 发表于 2016-8-28 11:19
看不出啥毛病啊


发现问题了,少了使能SYSCFG时钟函数
但是为什么K1能行
回复 支持 反对

使用道具 举报

发表于 2016-8-28 11:33:52 来自手机 | 显示全部楼层
望着你发槑 发表于 2016-8-28 11:26
发现问题了,少了使能SYSCFG时钟函数
但是为什么K1能行

如果没开那肯定是不行的。而且寄存器默认值也应该是关闭的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-28 11:56:50 | 显示全部楼层
fire 发表于 2016-8-28 11:33
如果没开那肯定是不行的。而且寄存器默认值也应该是关闭的。

一开始的程序就没开,K1可以使用
我打开了串口和系统定时器,不知道是不是某些地方设置了相应的寄存器
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-28 11:58:46 | 显示全部楼层
fire 发表于 2016-8-28 11:33
如果没开那肯定是不行的。而且寄存器默认值也应该是关闭的。

我把串口和系统定时器关了,不是能syscfg时钟,K1依然可以
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-29 06:23 , Processed in 0.030145 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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