STM32之GPIO输入输出

发布者:电竞狂人最新更新时间:2017-10-09 来源: eefocus关键字:STM32  GPIO  输入输出 手机看文章 扫描二维码
随时随地手机看文章

GPIO的输出

背景:应用在点亮LED。LED串联电阻再上拉,另一端与GPIO口相连。因此,GPIO输出高电平则LED灭,输出低电平则LED亮。

第一步工作是初始化GPIO,使能外设时钟,因为GPIO是挂载在APB2中线上的。然后对GPIO_InitTypeDef结构体进行初始化,设置GPIO_Pin的具体引脚,输出频率,工作模式,如上拉,下拉,浮空等。

关于GPIO的库函数里有GPIO_SetBit( )和GPIO_ResetBits ( )两个函数,分别是设置指定的数据端口位和清除指定的数据端口位,就像置1和清零。

函数名    : GPIO_SetBits 
函数原形:       void GPIO_SetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin)  
功能描述:       设置指定的数据端口位 
输入参数1:     GPIOx :x 可以是A,B ,C ,D 或者E,来选择GPIO外设 
输入参数2:     GPIO_Pin:待设置的端口位 。该参数可以取GPIO_Pin_x(x 可以是 0-15)的任意组合 ,如GPIO_Pin_10 | GPIO_Pin_15

函数GPIO_ResetBits 的原型为void GPIO_ResetBits(GPIO_TypeDef* GPIOx, u16 GPIO_Pin),其参数的含义和上面也是类似的。

因此,点亮一个LDE灯变成调用函数  

GPIO_ResetBits(GPIOx,GPIO_Pin_x);  输出低电平点亮

熄灭一个LED灯变成

GPIO_SeBits(GPIOx,GPIO_Pin_x); 输出高电平熄灭


GPIO输入

当GPIO连接了外部传感器,而传感器的信号是开关量的时候,GPIO可能需要去轮询输入的状态是高是低,这时候GPIO就需要当做输入来用。

按键的动作可以用来模拟传感器的动作,按键通过上拉电阻接到高电平。当按键按下时,会使相应的GPIO管脚变成低电平。配置这些GPIO引脚为上拉模式,在没有收到信号的情况下,保持这些GPIO口为高电平。

GPIO的库函数也为我们提供了读取某指定端口管脚的输入-- GPIO_ReadInputDataBit 正是这样一个函数

函数名  GPIO_ReadInputDataBit 
函数原形   u8 GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, u16 GPIO_Pin) 
功能描述   读取指定端口管脚的输入 
输入参数1   GPIOx :x 可以是A,B ,C ,D 或者E,来选择GPIO外设 
输入参数2   GPIO_Pin:待读取的端口位 

返回值   输入端口管脚值,高或者低

u8 ReadValue; 

ReadValue = GPIO_ReadInputDataBit(GPIOx, GPIO_Pin_x);

返回值ReadValue反应了GPIO口的高低状态。


关键字:STM32  GPIO  输入输出 引用地址:STM32之GPIO输入输出

上一篇:STM32 通用输入输出端口GPIO BRR、BSRR、ODR寄存器详解
下一篇:STM32堆栈学习

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved