你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F207的中断程序问题

[复制链接]
火龙吃果 提问时间:2016-6-28 09:34 /
编写了一个中断程序,编译没有问题,但是不知道为什么烧写到开发板上没有实验效果,请各位大侠帮我看看。。
这个是主程序
  1. int main(void)
  2. {
  3.         LED_CONTROL_GPIO_Config();
  4.         
  5.         EXTI_key_config();
  6.         
  7.         while (1)
  8.         {
  9.                
  10.         }
  11. }
复制代码


下面配置文件中的程序
希望用PF10的按键按下时让PF6外接的LED灯亮
  1. #define ModeSwitch_Port                                 GPIOF
  2. #define ModeSwitch_Pin                                   GPIO_Pin_10
  3. #define ModeSwitch_RCC_AHBPeriph               RCC_AHB1Periph_GPIOF
  4. <blockquote>#define LED1_Port<span class="Apple-tab-span" style="white-space:pre">                                                </span>GPIOF
复制代码
下面是中断程序

  1. void EXTI15_10_IRQHandler(void)
  2. {
  3.                 if(EXTI_GetITStatus(EXTI_Line10)!=RESET)
  4.                 {        
  5.                         GPIO_SetBits(GPIOF , GPIO_Pin_6);

  6.                         
  7.                         EXTI_ClearFlag(EXTI_Line10);                  
  8.                         EXTI_ClearITPendingBit(EXTI_Line10);
  9.                
  10.                 }
  11. }
复制代码
烧写后,按键一点反应都没有,不知道是哪里存在问题呢?


收藏 评论6 发布时间:2016-6-28 09:34

举报

6个回答
Dylan疾风闪电 回答时间:2016-6-30 08:36:01
本帖最后由 Dylan疾风闪电 于 2016-6-30 08:39 编辑

对着这几个问题,检查一下自己的代码:

1、GPIO口的配置是否正确
2、EXTI寄存器是否配置,上升沿触发还是下降沿触发
3、中断是否开启

可以参考这个 (在链接转过去的20楼)例子 https://www.stmcu.org.cn/module/foru ... 9&page=2#pid2151820

  1. RCC_APB2PeriphClockCmd(RCC_EXTI | RCC_LED | RCC_APB2Periph_AFIO, ENABLE);
  2.   
  3.   GPIO_InitTypeDef GPIO_InitStructure;
  4.   /* Configure GPIO Led pin 6 as Output push-pull */
  5.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
  6.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  7.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  8.   GPIO_Init(GPIO_LED, &GPIO_InitStructure);
  9.   /* Configure Key Button GPIO Pin as input pull-up (Key Button EXTI Line) */
  10.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  11.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  12.   GPIO_Init(GPIO_EXTI, &GPIO_InitStructure);
  13.   

  14.   //NVIC for EXTI
  15.   NVIC_GroupSet(NVIC_PriorityGroup_0, EXTI15_10_IRQn, 0);

  16.   
  17.   /* Connect Key Button EXTI Line to Key Button GPIO Pin */
  18.   GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource10);
  19.   /* Configure Key Button EXTI Line to generate an interrupt on falling edge */  
  20.   EXTI_InitTypeDef EXTI_InitStructure;
  21.   EXTI_InitStructure.EXTI_Line = EXTI_Line10;
  22.   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  23.   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  24.   EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  25.   EXTI_Init(&EXTI_InitStructure);

  26.   /* Generate software interrupt: simulate a falling edge applied on Key Button EXTI line */
  27.   EXTI_GenerateSWInterrupt(EXTI_Line10);
复制代码


评分

参与人数 1ST金币 +5 收起 理由
zero99 + 5 大神呐

查看全部评分

lzts 回答时间:2016-6-30 10:16:37
检查程序, 如查不出问题时. 在死循环里面加一个10毫秒延时试下.

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 赞一个!

查看全部评分

eagle0754 回答时间:2016-6-30 11:04:31
代码不全,按二楼的方法查吧,还有启动文件有没有加对
11:493 回答时间:2016-6-30 17:19:07
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource10); 这个里面的GPIO_PortSourceGPIOB更改为GPIO_PortSourceGPIOF,你用的是PF10,配置确实PB10,当然是不行了。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 很给力!

查看全部评分

huaiqiao 回答时间:2016-6-30 21:58:09
需要确定下gpio初始化是否正确,还需要引用SYSCFG_EXTILineConfig,配置NVIC等。楼主代码不全

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 赞一个!

查看全部评分

Dylan疾风闪电 回答时间:2016-7-1 14:27:11
Jason-252755 发表于 2016-6-30 17:19
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource10); 这个里面的GPIO_PortSourceGPIOB更改为G ...

哥,一、二楼不是同一个人!!
另外,不是给他Ctrl+C/V的。只是排查的参考代码。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版