[应用相关] 我按键却没有反应

[复制链接]
2881|10
 楼主| tianli1980 发表于 2013-12-5 15:33 | 显示全部楼层 |阅读模式
我仿照原子的例程进行外部中断实验,可总是实现不了,大家讨论讨论呀.
主程序中的中断初始化:
1.jpg
各项设置:
2.jpg
中断服务程序:
3.jpg
可是我按键却没有反应,什么情况?
ar_m_cu 发表于 2013-12-5 16:01 | 显示全部楼层
你在中断处理函数中延时?真大胆!
根号四 发表于 2013-12-5 16:54 | 显示全部楼层
还用消抖?真大胆!
小营七郎 发表于 2013-12-5 17:20 | 显示全部楼层
ar_m_cu 发表于 2013-12-5 16:01
你在中断处理函数中延时?真大胆!

难道不能延时嘛?
zeluo 发表于 2013-12-5 17:30 | 显示全部楼层
是不是  你的延时时间太长了   楼主   这个完全有可能的
ar_m_cu 发表于 2013-12-5 18:41 | 显示全部楼层
本帖最后由 ar_m_cu 于 2013-12-5 18:43 编辑
小营七郎 发表于 2013-12-5 17:20
难道不能延时嘛?


中断函数的执行时间要尽可能的短,在中断函数中出现延时函数和等待函数是禁忌。延时可以在其他的地方处理。
m__dd 发表于 2013-12-6 08:19 | 显示全部楼层
可以用输入滤波,时钟周期也不用太高
副BAN主就是我 发表于 2013-12-6 10:22 | 显示全部楼层
NVIC中断使能了吗?时钟是否配置了?GPIO是否配置正确?

  EXTI_InitTypeDef EXTI_InitStructure;
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource11);
  //将PB11配置为EXTI Line0
  EXTI_InitStructure.EXTI_Line=EXTI_Line11;
  EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//下降沿触发
  EXTI_InitStructure.EXTI_LineCmd=ENABLE;
  EXTI_Init(&EXTI_InitStructure);

  if(EXTI_GetITStatus(EXTI_Line11) != RESET)
  {   
    EXTI_ClearITPendingBit(EXTI_Line11);    //清中断
  }
  
gcxzhz 发表于 2013-12-6 10:26 | 显示全部楼层
人家在中断中延时是因为人家就一个按键中断,你这个是不是就一个中断啊
gcxzhz 发表于 2013-12-6 10:29 | 显示全部楼层
你的代码全贴上来
拿起书本 发表于 2013-12-8 20:23 | 显示全部楼层
中断处理程序中的延时可以用忙等待函数来代替的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

482

主题

2214

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部