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;