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;