目录
0x01、GPIO相关库函数
0x0001、GPIO初始化函数
void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
函数功能:根据指定的参数初始化GPIOx外设。
参数1:GPIO_TypeDef* GPIOx —> 指定GPIO端口
参数2:GPIO_InitTypeDef* GPIO_InitStruct —> 指向包含指定GPIO外围设备配置信息的GPIO_InitTypeDef结构体的指针。
返回值:无
0x0002、读取GPIO函数
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
函数功能:读取指定的输入端口引脚。
参数1:GPIO_TypeDef* GPIOx —> 指定GPIO端口
参数2:uint16_t GPIO_Pin —> 指定要读取的端口位,GPIO_Pin_x,其中x可以是(0..15)
返回值:bitstatus,输入端口引脚值。
0x0003、写入GPIO函数
void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)
函数功能:写指定的GPIO端口。
参数1:GPIO_TypeDef* GPIOx —> 指定GPIO端口
参数2:uint16_t PortVal —> 指定要写入端口输出数据寄存器的值。
返回值:无
0x0004、置位函数
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
函数功能:置位选定的数据端口位。
参数1:GPIO_TypeDef* GPIOx —> 指定GPIO端口
参数2:uint16_t GPIO_Pin —> 指定要写入的端口位,GPIO_Pin_x,其中x可以是(0..15)
返回值:无
0x0005、复位函数
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
函数功能:复位选定的数据端口位。
参数1:GPIO_TypeDef* GPIOx —> 指定GPIO端口
参数2:uint16_t GPIO_Pin —> 指定要写入的端口位,GPIO_Pin_x,其中x可以是(0..15)
返回值:无
0x02、硬件设计
实验目的:驱动RGBLED
0x03、自行编写的GPIO初始化函数
/**
*@brief LED初始化
*@param 无
*@return 无
*/
void Led_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure; // 定义GPIO_InitTypeDef结构体
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); // 初始化GPIOC的时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12; // 选择GPIO_Pin_10、11、12
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 输出速率50MHz
GPIO_Init(GPIOC, &GPIO_InitStructure); // 初始化GPIOC
GPIO_SetBits(GPIOC,GPIO_Pin_10); // 初始化熄灭红灯
GPIO_SetBits(GPIOC,GPIO_Pin_11); // 初始化熄灭蓝灯
GPIO_SetBits(GPIOC,GPIO_Pin_12); // 初始化熄灭绿灯
}
0x04、源程序下载地址
下面上传一个源程序供大家参考: