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

stm32f0不能进入外部中断

[复制链接]
chendiand 提问时间:2015-3-15 19:39 /
本帖最后由 chendiand 于 2015-3-15 19:57 编辑

今天想用按键进入外部中断,却不能进入中断,求大神指导,中断函数:

  1. #include "exti.h"

  2. void EXTI_KEY_Init(void)
  3. {
  4.         GPIO_InitTypeDef GPIO_InitStruct;
  5.         EXTI_InitTypeDef EXTI_InitStruct;
  6.         NVIC_InitTypeDef NVIC_InitStruct;
  7.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE);
  8.         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC,ENABLE);        
  9.         
  10.         NVIC_InitStruct.NVIC_IRQChannel=EXTI4_15_IRQn;
  11.         NVIC_InitStruct.NVIC_IRQChannelPriority=0x00;
  12.   NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;
  13.         NVIC_Init(&NVIC_InitStruct);
  14.         
  15.         GPIO_InitStruct.GPIO_Pin=13;
  16.         GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN;
  17.         GPIO_InitStruct.GPIO_Speed=GPIO_Speed_Level_2;
  18.         GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;
  19.         GPIO_Init(GPIOC,&GPIO_InitStruct);
  20.         
  21.         SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC,EXTI_PinSource13);
  22.   EXTI_InitStruct.EXTI_Line=EXTI_Line13;
  23.         EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;
  24.         EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Falling;
  25.         EXTI_InitStruct.EXTI_LineCmd=ENABLE;
  26.         EXTI_Init(&EXTI_InitStruct);
  27. }
复制代码
主函数

  1. int main(void)
  2. {
  3.   SystemInit();
  4.         Led_Init();
  5.         GPIO_ResetBits(GPIOA ,GPIO_Pin_5);
  6.         EXTI_KEY_Init();
  7.   
  8.   while (1)
  9.   {

  10.   }
  11. }
复制代码
stm32f0xx_it.c中配置函数:
  1. void PendSV_Handler(void)
  2. {
  3. }

  4. /**
  5.   * @brief  This function handles SysTick Handler.
  6.   * @param  None
  7.   * @retval None
  8.   */
  9. void SysTick_Handler(void)
  10. {
  11. }
  12. void EXTI4_15_IQRHandler(void)
  13. {
  14.         if(EXTI_GetITStatus(EXTI_Line13)!=RESET)
  15.         {
  16.                 GPIO_WriteBit(GPIOA, GPIO_Pin_5  ,
  17.                              (BitAction)((1-GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_5))));
  18.                 EXTI_ClearFlag(EXTI_Line13);
  19.         }
  20. }
复制代码


收藏 评论10 发布时间:2015-3-15 19:39

举报

10个回答
chendiand 回答时间:2015-3-15 19:40:33
内核是M0的
zfz0122 回答时间:2015-3-15 19:57:30
优先级设置对了没有。有没有优先级冲突。 0.gif 0.gif 0.gif
chendiand 回答时间:2015-3-15 20:00:52
zfz0122 发表于 2015-3-15 19:57
优先级设置对了没有。有没有优先级冲突。

优先级设为0了,而且就这一个中断啊
_ilikerome_ 回答时间:2015-3-16 09:15:55
哎,为嘛用库,俺都看不懂。。。
回答时间:2015-3-16 09:53:23
楼主用的下降沿,电平由高变低的时候触发。
名字不好起 回答时间:2015-3-16 14:34:03
ddddd.png
stary666 回答时间:2015-3-16 16:00:21
chendiand 回答时间:2015-3-16 17:28:26
问题找到了,Stm32f0xx_it.c文件中,外部中断函数写错了,被默认为一个普通函数,所以不能够进入外部中断,建议大家写外部中断的时候.s 文件中复制,避免写错
chendiand 回答时间:2015-3-16 17:28:54
同时谢谢大家的帮助
12下一页

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版