单片机/MCU论坛
直播中

cjunrong

12年用户 104经验值
擅长:嵌入式技术 控制/MCU
私信 关注
[问答]

STM8L10x 中断库函数FunctionalState NewState的问题

使用STM8L101F3P芯片,用iar库函数,想实现最简单的按键中断,在库里有一函数

void EXti_SetHalfPortSelection(EXTI_HalfPort_TypeDef EXTI_HalfPort,

                               FunctionalState NewState)

如图所示,

在使用这个函数的时候,EXTI_HalfPort_TypeDef EXTI_HalfPort可以使用上面提供的组合,

例如EXTI_HalfPort_B_LSB

可是FunctionalState NewState这个应该填什么进去呢,说明没有提供,直接填上十六进制数上去也不行,请教大家一下,谢谢...!


下面贴上直接在库里复制出的原函数


/**
  * @brief  Configure the half port interrupt selection.
  * @note   This function must be called once the port sensitivity is configured,
  *          otherwise this function call won't have any effect on the port external interrupt.
  * @param  EXTI_HalfPort The port part  to access (MSB or LSB).
  *          This parameter can be any combination of the following values:
  *            @arg EXTI_HalfPort_B_LSB:     Interrupt selector PB(3:0)
  *            @arg EXTI_HalfPort_B_MSB:     Interrupt selector PB(7:4)
  *            @arg EXTI_HalfPort_D_LSB:     Interrupt selector PE(3:0)
  *            @arg EXTI_HalfPort_D_MSB:     Interrupt selector PE(7:4)
  * @param  NewState  The external interrupt new state.
  * @retval None
  */
void EXTI_SetHalfPortSelection(EXTI_HalfPort_TypeDef EXTI_HalfPort,
                               FunctionalState NewState)
{
  /* Check function parameters */
  assert_param(IS_EXTI_HALFPORT(EXTI_HalfPort));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    EXTI->CONF |= (uint8_t)EXTI_HalfPort; /* Enable port interrupt selector */
  }
  else /*NewState == DISABLE */
  {
    EXTI->CONF &= (uint8_t)(~(uint8_t)EXTI_HalfPort); /* Disable port interrupt selector */
  }
}

回帖(3)

新手求带AAA

2015-11-26 13:32:39
当前的状态 ENABLE或者DISABLE
1 举报

elec吉

2016-3-23 20:18:24
functionalstate来自这里:typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;而你仿真可以看一下,此时NewState的值为ENABLE=0X00000001
1 举报

星火007

2016-7-14 21:44:59
解决了么?同问
麻烦来个例子  谢谢
举报

更多回帖

发帖
×
20
完善资料,
赚取积分