【问题标题】:STM32L-Discovery EXTI Interrupt failSTM32L-发现EXTI中断失败
【发布时间】:2013-10-03 11:11:08
【问题描述】:

在 IAR 编译器上使用 STM32L151xx。

我正在尝试获取 EXTI 中断但无处可去,这是我的代码,基本上直接来自示例代码但无法正常工作,

  EXTI_InitTypeDef EXTI_InitStructure;
  NVIC_InitTypeDef NVIC_InitStructure;
  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
  SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource10);
  EXTI_InitStructure.EXTI_Line = EXTI_Line1;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;  
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
  NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//0x0F;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;//0x0F;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
  EXTI_GenerateSWInterrupt(EXTI_Line1);

当我将 PA10 引脚设为高电平时,我没有收到软件中断,代码没有转到 EXTI1_IRQHandler(),似乎缺少什么? 编辑EXTI_GetFlagStatus 我得到 0 和EXTI_GETITStatus我得到0

【问题讨论】:

  • 我会在写入它的寄存器之前启动外设时钟,你可以试试。
  • @unwind SOLVED: PA9 连接到 Line9, PA10 Line 10 通过EXTI9_5_IRQHandler (EXTI9_5_IRQn) 和EXTI15_10_IRQHandler (EXTI15_10_IRQn) 提供中断服务
  • 请将您的解决方案作为答案发布,以便您最终接受它来解决问题。

标签: c embedded interrupt stm32ldiscovery


【解决方案1】:

PA9 连接到Line9PA10 Line 10 通过EXTI9_5_IRQHandler (EXTI9_5_IRQn)EXTI15_10_IRQHandler (EXTI15_10_IRQn) 的中断服务

【讨论】:

  • 您能详细说明一下吗?你句子中唯一的动词是“连接”......
猜你喜欢
  • 2020-08-15
  • 2017-11-12
  • 1970-01-01
  • 2015-10-21
  • 2011-07-07
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多