一个简单的初始化代码如下:
bash
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOB时钟
GPIO_InitStructure.GPIO_Pin = Buzzer_PIN;//LED对应IO口
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIO
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//使能GPIOB时钟
每次开始需要使用gpio引脚,都需要线使能相应GPIO总线时钟。 -----------这个时钟看上去是与总线相关(后面看uart adc时会看到,使用外设时还需要使能外设时钟)
GPIO_InitStructure.GPIO_Pin = Buzzer_PIN;//LED对应IO口这个是指定引脚,比如GPIOA组的第几个引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//普通输出模式设置GPIO模式也就是用途。模式有如下四种:
- GPIO_Mode_IN 普通的GPIO输入
- GPIO_Mode_OUT 普通的GPIO输出
- GPIO_Mode_AF 针对TIM, USART...
- GPIO_Mode_AN 针对ADC and DAC
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//推挽输出GPIO_Mode_IN输入模式时,不进行设置
GPIO_Mode_AF功能选择模式时,设置为GPIO_OType_PP
GPIO_Mode_AN模拟信号模式时,不进行设置
GPIO_Mode_OUT输出模式有如下类型:
- GPIO_OType_PP 推挽输出
- GPIO_OType_OD 开漏输出 (有外部上拉电阻时配这个?)
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz作为普通gpio时,设置速度为100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉设置为上拉,增加驱动能力。