STM32学习笔记

GPIO(通用输入输出口)

 所有GPIO口都是挂载在APB2外设总线上,GPIO外设名称按照GPIOA、GPIOB、GPIOC来命名。 每个GPIO外设有16个引脚(0~15),GPIOA的第0号引脚称作PA0。

八种输入输出模式

1.浮空输入:可读取引脚高低电平,若引脚悬空,高低电平不确定。

2.上拉输入:可读取引脚高低电平,引脚悬空时,默认高电平。

3.下拉输入:可读取引脚高低电平,引脚悬空时,默认低电平。

4.模拟输入:GPIO无效,引脚直接接入内部ADC,为ADC模数转换器专属配置。

5.开漏输出:可输出引脚电平,低电平有效。

6.推挽输出:可输出引脚电平,高低电平均有效。

7.复用开漏输出:引脚电平由片上外设(单片机上的外围设备)控制,低电平有效。

8.复用推挽输出:引脚电平由片上外设控制,高低电平有均效。

AIN(Analog in)                 模拟输入
IN_FLOATING                    浮空输入
IPD(In Pull Down)              下拉输入
IPU(In Pull Up)                上拉输入
Out_OD(out open drain)         开漏输出
Out_PP(out push pull)          推挽输出
AF_OD(Alt open drrain)         复用开漏
AF_PP(Alt push pull)           复用推挽

使用GPIO的3个步骤

1.使用RCC开启GPIO时钟

2.使用GPIO_Init函数初始化GPIO

3.使用输出或输入函数控制GPIO口

RCC常用库函数

1.RCC AHB外设时钟控制

2.RCC APB2外设时钟控制

3.RCC APB1外设时钟控制

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

以RCC_APB2PeriphClockCmd()为例:第一个参数选择下列的外设,第二个参数使能或失能(ENABLE/DISABLE)

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 

GPIO库函数

void GPIO_DeInit(GPIO_TypeDef* GPIOx);//所指定的GPIO外设将会复位
void GPIO_AFIODeInit(void);//复位AFIO外设

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);
//用结构体的参数数值化GPIO口

void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);
//把结构
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值