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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版