野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13362|回复: 2

火哥请教一下 库函数EXTI_Init()IMR寄存器是在哪里把相应位置1的

[复制链接]
发表于 2015-11-12 12:03:29 | 显示全部楼层 |阅读模式
看了STM32的中文参考手册 用外部中断的时候说是要把IMR寄存器置1才可以触发中断  但是找了这个函数都没找到他是在哪里把IMR寄存器相应位打开的
void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)
{
  uint32_t tmp = 0;

  /* Check the parameters */
  assert_param(IS_EXTI_MODE(EXTI_InitStruct->EXTI_Mode));
  assert_param(IS_EXTI_TRIGGER(EXTI_InitStruct->EXTI_Trigger));
  assert_param(IS_EXTI_LINE(EXTI_InitStruct->EXTI_Line));  
  assert_param(IS_FUNCTIONAL_STATE(EXTI_InitStruct->EXTI_LineCmd));

  tmp = (uint32_t)EXTI_BASE;

  if (EXTI_InitStruct->EXTI_LineCmd != DISABLE)
  {
    /* Clear EXTI line configuration */
    EXTI->IMR &= ~EXTI_InitStruct->EXTI_Line;
    EXTI->EMR &= ~EXTI_InitStruct->EXTI_Line;

    tmp += EXTI_InitStruct->EXTI_Mode;

    *(__IO uint32_t *) tmp |= EXTI_InitStruct->EXTI_Line;

    /* Clear Rising Falling edge configuration */
    EXTI->RTSR &= ~EXTI_InitStruct->EXTI_Line;
    EXTI->FTSR &= ~EXTI_InitStruct->EXTI_Line;

    /* Select the trigger for the selected external interrupts */
    if (EXTI_InitStruct->EXTI_Trigger == EXTI_Trigger_Rising_Falling)
    {
      /* Rising Falling edge */
      EXTI->RTSR |= EXTI_InitStruct->EXTI_Line;
      EXTI->FTSR |= EXTI_InitStruct->EXTI_Line;
    }
    else
    {
      tmp = (uint32_t)EXTI_BASE;
      tmp += EXTI_InitStruct->EXTI_Trigger;

      *(__IO uint32_t *) tmp |= EXTI_InitStruct->EXTI_Line;
    }
  }
  else
  {
    tmp += EXTI_InitStruct->EXTI_Mode;

    /* Disable the selected external lines */
    *(__IO uint32_t *) tmp &= ~EXTI_InitStruct->EXTI_Line;
  }
}

回复

使用道具 举报

 楼主| 发表于 2015-11-12 12:21:43 | 显示全部楼层
   *(__IO uint32_t *) tmp |= EXTI_InitStruct->EXTI_Line  这一句的 *(__IO uint32_t *) tmp 是不是把tem强制转换成指针的意思呀,然后修改这个地址里面的值?
回复 支持 反对

使用道具 举报

发表于 2015-11-12 14:28:16 | 显示全部楼层
liutao 发表于 2015-11-12 12:21
*(__IO uint32_t *) tmp |= EXTI_InitStruct->EXTI_Line  这一句的 *(__IO uint32_t *) tmp 是不是把tem ...

是的,就是你说的这个意思
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 19:20 , Processed in 0.030940 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表