STM32F407-获取GPIO电平状态

发布者:a407895356最新更新时间:2022-06-29 来源: eefocus关键字:STM32F407  GPIO  电平状态 手机看文章 扫描二维码
随时随地手机看文章

判断STM32 GPIO输入口的输入状态(高电平或低电平)


以PE2和PE4为例:


① 判断单个端口是否为高电平:


if(GPIOE->IDR& GPIO_IDR_IDR2)


{


函数体;


}


当PE2端口为高电平时,if条件为真;当PE2口为低电平时,if条件为假;


② 判断单个端口是否为低电平:


if((~GPIOE->IDR)& GPIO_IDR_IDR2)


{


函数体;


}


分析:首先通过 &GPIO_IDR_IDR屏蔽掉PE2之外的其他PE口。当PE2为高电平时,GPIO-〉IDR的bit2为‘1’,取反后为‘0’,因此条件为假;当PE2为低电平时,GPIO-〉IDR的bit2为‘0’,取反后为‘1’,因此条件为真;通过此方法可以同时判断PE2或PE4(甚至更多PE口)是否为低电平(如按键被按下)


③ 判断多个端口中是否有低电平:


if((~GPIOE->IDR)& (GPIO_IDR_IDR2 | GPIO_IDR_IDR4))


{


函数体;


}


分析:首先通过 & (GPIO_IDR_IDR2| GPIO_IDR_IDR4)屏蔽掉PE2和PE4之外的其他PE口。当PE2或(和)PE4中为低电平时,GPIO-〉IDR的bit2或(和)bit4为‘0’,取反后为‘1’,因此条件为真;


或者利用库函数GPIO_ReadInputDataBit去判断:


uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)

{

  uint8_t bitstatus = 0x00;

 

  /* Check the parameters */

  assert_param(IS_GPIO_ALL_PERIPH(GPIOx));

  assert_param(IS_GET_GPIO_PIN(GPIO_Pin));

 

  if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)Bit_RESET)

  {

    bitstatus = (uint8_t)Bit_SET;

  }

  else

  {

    bitstatus = (uint8_t)Bit_RESET;

  }

  return bitstatus;

}


如判断PA3的电平高低:


GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_3)==SET


如果PA3为高电平则返回真,否则返回假

关键字:STM32F407  GPIO  电平状态 引用地址:STM32F407-获取GPIO电平状态

上一篇:STM32F407-限位金属传感器限制步进电机
下一篇:STM32F407-定时器中断

推荐阅读最新更新时间:2024-11-04 03:28

STM32的GPIO电路原理详解
GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 STM32F103ZET6芯片为144脚芯片,包括7个通用目的的输入/输出口(GPIO)组,分别为GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、GPIOG,同时每组GPIO口组有16个GPIO口。通常简略称为PAx、PBx、PCx、PDx、PEx、PFx、PGx,其中x为0-15。 STM32的大部分引脚除了当GPIO使用之外,还可以复用为外设功能引脚,比如串口。 GPIO基本结构 每个GPIO内部都有这样的一个电路结构,这个结构在本文下面
[单片机]
STM32的<font color='red'>GPIO</font>电路原理详解
STM32的八种GPIO模式
STM32有八种IO口模式,分别是:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出和复用推挽输出。 1、模拟输入 GPIO_Mode_AIN模拟输入,即关闭施密特触发器,将电压信号传送到片上外设模块(不接上下拉电阻)。 2、浮空输入 GPIO_Mode_IN_FLOATING浮空输入。浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。 3、上下拉输入 GPIO_Mode_IPD下拉输入,GPIO_Mode_IPU上拉输入。一般来讲,上拉电阻为1K-10K,电阻越小,驱动能力越强。 电阻的作用:防止输入端悬空,减少外部
[单片机]
STM32F407-外部中断
一.基本概念 STM32F4的每个IO都可以作为外部中断输入。 STM32F4的中断控制器支持22个外部中断/事件请求: EXTI线0~15:对应外部IO口的输入中断。 EXTI线16:连接到PVD输出。 EXTI线17:连接到RTC闹钟事件。 EXTI线18:连接到USB OTG FS唤醒事件。 EXTI线19:连接到以太网唤醒事件。 EXTI线20:连接到USB OTG HS(在FS中配置)唤醒事件。 EXTI线21:连接到RTC入侵和时间戳事件。 EXTI线22:连接到RTC唤醒事件。 每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。
[单片机]
STM32F407-外部中断
STM32F103 GPIO寄存器配置
每个GPI/O端口有 两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH) 两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR) 一个32位置位/复位寄存器(GPIOx_BSRR) 一个16位复位寄存器(GPIOx_BRR) 一个32位锁定寄存器(GPIOx_LCKR) 函数介绍 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) 功能: 根据 GPIO_InitStruct 中指定的参数初始化外设GPIOx寄存器 参数: GPIOx:x可以是A,B,C,D或者E,来选择GPIO外设 GPIO_InitStru
[单片机]
STM32F103 <font color='red'>GPIO</font>寄存器配置
STM32单片机的八种GPIO口模式
GPIO 是通用输入/输出端口的简称,本文以STM32为例进行说明,其他的单片机功能上都是大同小异,学会STM32的GPIO,我们可以触类旁通。 GPIO 的引脚与外部硬件设备连接,可实现与外部通讯、控制外部硬件或者采集外部硬件数据的功能。 STM32的八种GPIO口模式 1) GPIO_Mode_AIN 模拟输入; 2) GPIO_Mode_IN_FLOATING 浮空输入; 3) GPIO_Mode_IPD 下拉输入; 4) GPIO_Mode_IPU 上拉输入; 5) GPIO_Mode_Out_OD 开漏输出; 6) GPIO_Mode_Out_PP 推挽输出; 7) GPIO_Mode_AF_OD 复用开漏输
[单片机]
STM32单片机的八种<font color='red'>GPIO</font>口模式
STM32入门——第一天学习GPIO
第一步 学习GPIO,以按键控制跑马灯为例 GPIO是相对于stm32来说的,也就是芯片上的IO引脚,如C51上的P0口。但是stm32上的io口拥有更强大的功能,有GPIOA~G。每个GPIOx共15个引脚,刚开始学习时对于每个IO口的N多个功能没必要深究,但要记住几个重要的功能:输入上拉,输入下拉,推挽输出。这是本次试验用到的。 输入上拉:当IO口作为输入时,比如按键输入,而按键是与地连接,按下时为低电平,则没按下时该IO口应为高电平,上拉即是该IO口通过一个电阻与电源相连,则没按下时为高电平,按下即为低电平。 输入下拉:同理此时按键与电源相连,按下即为高电平,下拉就是该IO口通过一个电阻与地相连,没按下
[单片机]
STM32入门——第一天学习<font color='red'>GPIO</font>
1.10.7_I2C_测试_P
测试总结: 中断没产生:未配置GPIO用于IIC功能; 只产生一次中断,并且出错:tx err, no ack:启动传输前,IICSTAT = (1 4); 第一次读OK,再次写卡死,复位仍然卡死,重新上电再写OK:查看AT24cxx芯片手册,读最后一个数据时,不要回应ACK给AT24cxx。
[单片机]
1.10.7_I2C_测试_P
MAX1220多通道ADC/DAC,带有FIFO、温度传感器和GPIO端口
 MAX1220/MAX1257/MAX1258将一个12位、多路模数转换器(ADC)和一个12位、八路数模转换器(DAC)集成在单片IC上。这些器件还包含了温度传感器、可配置的通用I/O端口(GPIO)和一个25MHz的SPI™/QSPI™/MICROWIRE™兼容串行接口。该系列ADC具有8和16输入通道的产品。八路DAC输出在2.0µs内稳定,ADC转换速率为225ksps。   所有器件中都包括了为ADC和DAC提供的内部基准(2.5V或4.096V)。可编程的基准模式允许选择内部基准、外部基准或两者的组合。内部包括:±1°C的精密温度传感器、FIFO、扫描模式、可编程内部或外部时钟模式、数据平均与AutoShutdow
[模拟电子]
MAX1220多通道ADC/DAC,带有FIFO、温度传感器和<font color='red'>GPIO</font>端口
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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