GPIO输出流程: 使能时钟–>初始化GPIO–>输出高低电平

int GPIO_OUT_INIT(void)
{
    GPIO_InitTypeDef g;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE,ENABLE);

    g.GPIO_Pin=GPIO_Pin_5;
    g.GPIO_Speed=GPIO_Speed_50MHz;
    g.GPIO_Mode=GPIO_Mode_Out_PP;

    GPIO_Init(GPIOB,&g);
    GPIO_SetBits(GPIOB,GPIO_Pin_5);
    
    GPIO_Init(GPIOE,&g);
    GPIO_ResetBits(GPIOE,GPIO_Pin_5);
}

GPIO输入流程:使能时钟–>初始化GPIO–>读入高低电平

void GPIO_IN_INIT(void)
{
    GPIO_InitTypeDef g;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE);
    g.GPIO_Pin=GPIO_Pin_4;
    g.GPIO_Mode=GPIO_Mode_IPU;
    GPIO_Init(GPIOE,&g);
}

示例1:从PE4读入高低电平并赋给PB5的三种方法:

     GPIO_WriteBit(GPIOB,GPIO_Pin_5,(BitAction)GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4));

     GPIO_WriteBit(GPIOB,GPIO_Pin_5,(BitAction)GPIOE->IDR&GPIO_Pin_4);

    if(GPIOE->IDR&GPIO_Pin_4)
        GPIOB->BSRR=GPIO_Pin_5;
    else 
          GPIOB->BRR=GPIO_Pin_5;

版权声明:本文为AdamChen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/AdamChen/p/12176553.html