一、使用流程
1.使用RCC开启GPIO时钟
2.使用GPIO_Init 函数初始化GPIO
3.使用输出或输入函数控制GPIO口
二、RCC的常用函数
函数内容可通过这两个文件进行查看:

RCC常用函数如下:
void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);
//RCC_AHBPeriph 选择外设
/* For @b STM32_Connectivity_line_devices STM32互联型设备       *     @arg RCC_AHBPeriph_DMA1*     @arg RCC_AHBPeriph_DMA2*     @arg RCC_AHBPeriph_SRAM*     @arg RCC_AHBPeriph_FLITF*     @arg RCC_AHBPeriph_CRC*     @arg RCC_AHBPeriph_OTG_FS    *     @arg RCC_AHBPeriph_ETH_MAC   *     @arg RCC_AHBPeriph_ETH_MAC_Tx*     @arg RCC_AHBPeriph_ETH_MAC_Rx* *   For @b other_STM32_devices, STM32其他设备       *     @arg RCC_AHBPeriph_DMA1*     @arg RCC_AHBPeriph_DMA2*     @arg RCC_AHBPeriph_SRAM*     @arg RCC_AHBPeriph_FLITF*     @arg RCC_AHBPeriph_CRC*     @arg RCC_AHBPeriph_FSMC*     @arg RCC_AHBPeriph_SDIO
*/
//NewState: 这个参数是ENABLE 或者 DISABLEvoid RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
// RCC_APB2Periph 选择外设,可选择外设如下
/* *     @arg RCC_APB2Periph_AFIO, RCC_APB2Periph_GPIOA, RCC_APB2Periph_GPIOB,*          RCC_APB2Periph_GPIOC, RCC_APB2Periph_GPIOD, RCC_APB2Periph_GPIOE,*          RCC_APB2Periph_GPIOF, RCC_APB2Periph_GPIOG, RCC_APB2Periph_ADC1,*          RCC_APB2Periph_ADC2, RCC_APB2Periph_TIM1, RCC_APB2Periph_SPI1,*          RCC_APB2Periph_TIM8, RCC_APB2Periph_USART1, RCC_APB2Periph_ADC3,*          RCC_APB2Periph_TIM15, RCC_APB2Periph_TIM16, RCC_APB2Periph_TIM17,*          RCC_APB2Periph_TIM9, RCC_APB2Periph_TIM10, RCC_APB2Periph_TIM11   
*/void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);
//RCC_APB1Periph  可选择外设
/*@arg RCC_APB1Periph_TIM2, RCC_APB1Periph_TIM3, RCC_APB1Periph_TIM4,*          RCC_APB1Periph_TIM5, RCC_APB1Periph_TIM6, RCC_APB1Periph_TIM7,*          RCC_APB1Periph_WWDG, RCC_APB1Periph_SPI2, RCC_APB1Periph_SPI3,*          RCC_APB1Periph_USART2, RCC_APB1Periph_USART3, RCC_APB1Periph_USART4, *          RCC_APB1Periph_USART5, RCC_APB1Periph_I2C1, RCC_APB1Periph_I2C2,*          RCC_APB1Periph_USB, RCC_APB1Periph_CAN1, RCC_APB1Periph_BKP,*          RCC_APB1Periph_PWR, RCC_APB1Periph_DAC, RCC_APB1Periph_CEC,*          RCC_APB1Periph_TIM12, RCC_APB1Periph_TIM13, RCC_APB1Periph_TIM14
*/三、GPIO函数
函数的内容可以通过这两个文件查看:

GPIO常用函数如下:
void GPIO_DeInit(GPIO_TypeDef* GPIOx);
//复位制定的GPIO外设void GPIO_AFIODeInit(void);
//复位AFIO外设void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
//GPIO的初始化函数
/*用结构体参数初始化GPIO口,需要先定义一个结构体变量,再给结构体赋值,再调用函数*/void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);
//函数用于把结构体变量赋一个默认值//GPIO的读取函数
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//读取GPIO口的输入状态,高电平为1,低电平为0
uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);
uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);//读取GPIO口的输出状态,0表示低电平,1表示高电平
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);//GPIO的写入函数
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);
void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);四、main函数
1.LED闪烁的main函数
#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main(void)
{//GPIO的初始化操作//GPIO_A的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//定一个GPIO结构体变量GPIO_InitTypeDef GPIO_InitStructure;//制定GPIO的工作模式GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出,最常用的工作模式GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;//外设引脚编号GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//输出速度50MHz//初始化GPIO口//第一个参数:GPIOx: where x can be (A..G) to select the GPIO peripheral.//第二个参数:GPIO结构体变量GPIO_Init(GPIOC, &GPIO_InitStructure);//操作GPIO外设输入输出while (1){GPIO_ResetBits(GPIOC, GPIO_Pin_13);//置低电平Delay_ms(2000);GPIO_SetBits(GPIOC, GPIO_Pin_13);//置高电平Delay_ms(500);//		GPIO_WriteBit(GPIOC, GPIO_Pin_0, Bit_RESET);//置低电平
//		Delay_ms(500);
//		GPIO_WriteBit(GPIOC, GPIO_Pin_0, Bit_SET);//置高电平
//		Delay_ms(500);
//		
//		GPIO_WriteBit(GPIOC, GPIO_Pin_0, (BitAction)0);
//		Delay_ms(500);
//		GPIO_WriteBit(GPIOC, GPIO_Pin_0, (BitAction)1);
//		Delay_ms(500);}
}
2.LED流水灯的main函数
#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main(void)
{/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	//开启GPIOA的时钟//使用各个外设前必须开启时钟,否则对外设的操作无效/*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;					//定义结构体变量GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;		//GPIO模式,赋值为推挽输出模式GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;				//GPIO引脚,赋值为所有引脚GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		//GPIO速度,赋值为50MHzGPIO_Init(GPIOA, &GPIO_InitStructure);					//将赋值后的构体变量传递给GPIO_Init函数while (1){/*使用GPIO_Write,同时设置GPIOA所有引脚的高低电平,实现LED流水灯*/GPIO_Write(GPIOA, ~0x0001);	//0000 0000 0000 0001,PA0引脚为低电平,其他引脚均为高电平,注意数据有按位取反Delay_ms(100);	GPIO_Write(GPIOA, ~0x0002);	//0000 0000 0000 0010,PA1引脚为低电平,其他引脚均为高电平Delay_ms(100);	GPIO_Write(GPIOA, ~0x0004);	//0000 0000 0000 0100,PA2引脚为低电平,其他引脚均为高电平Delay_ms(100);	GPIO_Write(GPIOA, ~0x0008);	//0000 0000 0000 1000,PA3引脚为低电平,其他引脚均为高电平Delay_ms(100);	GPIO_Write(GPIOA, ~0x0010);	//0000 0000 0001 0000,PA4引脚为低电平,其他引脚均为高电平Delay_ms(100);	GPIO_Write(GPIOA, ~0x0020);	//0000 0000 0010 0000,PA5引脚为低电平,其他引脚均为高电平Delay_ms(100);	GPIO_Write(GPIOA, ~0x0040);	//0000 0000 0100 0000,PA6引脚为低电平,其他引脚均为高电平Delay_ms(100);	GPIO_Write(GPIOA, ~0x0080);	//0000 0000 1000 0000,PA7引脚为低电平,其他引脚均为高电平Delay_ms(100);	}
}
3.蜂鸣器鸣叫
#include "stm32f10x.h"                  // Device header
#include "Delay.h"int main(void)
{/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	//开启GPIOB的时钟/*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;					//定义结构体变量GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;		//推挽输出模式GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;				//第12号引脚GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		//50MHzGPIO_Init(GPIOB, &GPIO_InitStructure);					//将赋值后的构体变量传递给GPIO_Init函数while (1){GPIO_ResetBits(GPIOB, GPIO_Pin_12);		//引脚设置为低电平,蜂鸣器鸣叫Delay_ms(100);							//延时100msGPIO_SetBits(GPIOB, GPIO_Pin_12);		//引脚设置为高电平,蜂鸣器停止Delay_ms(100);							//延时100msGPIO_ResetBits(GPIOB, GPIO_Pin_12);		//引脚设置为低电平,蜂鸣器鸣叫Delay_ms(100);							//延时100msGPIO_SetBits(GPIOB, GPIO_Pin_12);		//引脚设置为高电平,蜂鸣器停止Delay_ms(700);							//延时700ms}
}
参考学习资料:[3-2] LED闪烁&LED流水灯&蜂鸣器_哔哩哔哩_bilibili