23.9.17 LED点灯大师(GPIO输出)

本文详细介绍了如何通过RCC开启GPIO时钟,使用GPIO_Init进行初始化,以及各种GPIO功能如读写操作、工作模式的选择。涵盖了RCC主要函数和GPIO部分关键函数的使用方法。
摘要由CSDN通过智能技术生成

操作GPIO

1.使用RCC开启GPIO的时钟

2.使用GPIO_Init函数初始化GPIO

3.使用输出或输入函数控制时钟

RCC主要函数

使能或失能相应时钟

 RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);
 RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
 RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);

GPIO部分函数

GPIO_DeInit(GPIO_TypeDef* GPIOx)

所指定的GPIO被复位

GPIO_AFIODeInit(void)

可复位AFIO

GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)

用结构体的参数初始化GPIO口

GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct)

给结构体变量赋默认值

读取函数

uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);

uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);

写入函数

GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

把指定端口设置成高电平

GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

把指定端口设置成高电平

GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);

指定端口,并设置其高低电平

GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

可以一次性给多个IO口赋值

GPIO_Write(GPIOA,~0X0002);//0000 0000 0000 0010

GPIO8种工作模式

GPIO_Mode_AIN = 0x0,        模拟输入(Analog IN)

GPIO_Mode_IN_FLOATING = 0x04,        浮空输入

GPIO_Mode_IPD = 0x28,        下拉输入(In Pull Down)

GPIO_Mode_IPU = 0x48,        上拉输入(In Pull Up)

GPIO_Mode_Out_OD = 0x14,        开漏输出(Out Open Drain)

GPIO_Mode_Out_PP = 0x10,         推挽输出(Out Push Pull)

GPIO_Mode_AF_OD = 0x1C,         复用开漏(Atl Open Drain)

GPIO_Mode_AF_PP = 0x18           复用推挽(Atl Push Pull)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值