打印

新手请教中断问题

[复制链接]
1879|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
_crystal_|  楼主 | 2008-12-3 18:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TI, pi, gp, IO, GPIO
想在PB05设一个外部中断
  EXTI_InitTypeDef EXTI_InitStructure;

  /* Configure PB.05 as input floating (EXTI Line 5) */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
  
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource5);
  
    EXTI_ClearITPendingBit(EXTI_Line5);

  EXTI_InitStructure.EXTI_Line = EXTI_Line5;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
中断处理

void EXTI9_5_IRQHandler(void)
{
  if(EXTI_GetITStatus(EXTI_Line5) != RESET)
  {
    /*----处理---*/
    /* Clear the EXTI Line 5 */  
    EXTI_ClearITPendingBit(EXTI_Line5);
  } 
}
是这样设置的吗?我是不是忽略了某些东西?为什么进不去中断呢?
沙发
jeames| | 2008-12-4 11:13 | 只看该作者

还需配置NVIC

还需配置NVIC和使能终端向量

  NVIC_InitTypeDef NVIC_InitStructure;
 
  /* Set the Vector Table base address at 0x08000000 */
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x00);

  NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

131

帖子

0

粉丝