操作GPIO有三种方法:
- 调用库函数读取IO的输入电平:uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef*GPIOx,uint16_t GPIO_pin);
- 操作寄存器读取IO口输入电平:GPIOx_IDR:端口输入寄存器;
- 使用位带操作读取IO口输入电平:如PAin(4),读取GPIOA.4口电平。
初始化:GPIO_InitTypeDef GPIO_InitStructure;
调用RCC_APB2PeriphClockCmd()函数使IO口时钟使能:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);
调用引脚:GPIOI_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|;
设置模式:GPIOI_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//此为上拉模式in poll up(即初始电压为3.3V)IPD为下拉输入
调用GPIO_Init()函数完成初始化:GPIO_Init(GPIOA, &GPIO_InitStructure);//GPIOA完成初始化
(关于库函数和寄存器:
库函数是STM公司提供的函数,可以直接调用;而寄存器是我们直接操作底层的寄存器。(寄存器呢--计算机中用来在操作时暂时存储信息的部件))