微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM8L10x 中断库函数FunctionalState NewState的问题

STM8L10x 中断库函数FunctionalState NewState的问题

时间:10-02 整理:3721RD 点击:

使用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 */

  }

}


当前的状态 ENABLE或者DISABLE

functionalstate来自这里:typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;而你仿真可以看一下,此时NewState的值为ENABLE=0X00000001

解决了么?同问
麻烦来个例子  谢谢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top