stm32 中断线 IO模式读写笔记

一.stm32 中断线 的使用方法:

1.中断线配置:

void EXTI_Configuration(void)
{
  EXTI_InitTypeDef EXTI_InitStructure;        //EXTI初始化结构定义
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOE, GPIO_PinSource3);//管脚选择
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//事件选择
 // EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;下降沿触发
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;//上升沿触发模式
  EXTI_InitStructure.EXTI_Line = EXTI_Line3 ; //线路选择
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;//启动中断
  EXTI_Init(&EXTI_InitStructure);//初始化

}

2.中断处理函数:

/*******************************************************************************
* Function Name  : EXTI4_IRQHandler
* Description    : This function handles External interrupt Line 4 request.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void EXTI4_IRQHandler(void)
{    if (EXTI_GetITStatus(EXTI_Line4) != RESET)
    {
        //添加中断处理程序
      puls_cnt++;
      plus++;
      EXTI_ClearITPendingBit(EXTI_Line4);                       
    } 
}


二. GPIO_ReadInputDataBit  和GPIO_ReadOutputDataBit 函数用法解释说明如下:

1.使用格式如下:

GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_4) 和 GPIO_ReadOutputDataBit(GPIOF, GPIO_Pin_3)

倘若为真,则返回1,否则返回0.

比如: if(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_4)==0 ) cnt++;

#define    Start—end     GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_3)

2.为什么有的管教定义为GPIO_ReadInputDataBit,而有的管教定义为GPIO_ReadOutputDataBit?

比如: if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_4) ==0 ) cnt++;

#define    Start—end     GPIO_ReadOutputDataBit(GPIOF, GPIO_Pin_3)

现在去看看PB.4 的IO定义

  /*PB.4 as input floating for pulse signal*/
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOE, &GPIO_InitStructure);

现在去看看PF.3 的IO定义

     /* PF.3 as Power enble signal*/
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOF, &GPIO_InitStructure);

可以看出:PB.4 的IO定义为GPIO_Mode_IN_FLOATING;,故用GPIO_ReadInputDataBit。

而PF.3 的IO定义为GPIO_Mode_Out_PP;故用GPIO_ReadOutputDataBit。


你可能感兴趣的:(stm32 中断线 IO模式读写笔记)