STM32之GPIO输入输出
2013-07-11 17:15
148 查看
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口的高低状态。
背景:应用在点亮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原理: 输入和输出控制
- STM32的GPIO口的输出:开漏输出和推挽输出 浮空输入
- STM32的GPIO输入输出模式配置
- STM32中GPIO_ReadOutputDataBit及GPIO_ReadInputDataBit区别;上拉输入_IPU,下拉输入_IPD,模拟输入_AIN ;开漏输出_Out_OD, 推挽输出_O
- STM32 GPIO输出高低电平转换速率测试
- arm11 Tiny6410 gpio驱动实现输入和输出
- 第11章 GPIO输出-使用固件库点亮LED—零死角玩转STM32-F429系列
- STM32之的GPIO推挽输出与开漏输出的区别
- STM32之的GPIO推挽输出与开漏输出的区别
- STM32——GPIO输入模式下上拉和下拉的设置(转)
- STM32 IO口的8中配置方式解读(推挽输出、开漏输出、复用开漏输出、复用推挽输出以及上拉输入、下拉输入、浮空输入、模拟)
- STM32的GPIO有几种输出模式及其说明
- STM32学习笔记——使用函数库编程控制GPIO口输出
- 第12章 GPIO输入-按键检测—零死角玩转STM32-F429系列
- STM32学习笔记——控制GPIO输出点亮LED灯(直接操作存储器)
- 6410 gpio口输入和输出的理解
- 第11章 GPIO输出-使用固件库点亮LED—零死角玩转STM32-F429系列
- STM32输入输出模式理解