前言

君不见吴中张翰称达生,秋风忽忆江东行。
且乐生前一杯酒,何须生后千载名? ——李白《行路难·其三》

一、介绍

  • 函数 GPIO_ReadInputDataBit 读的是 GPIOx_IDR

  • 读的是当 IO 口设置为输入状态时候的 IO 口电平状态值;

  • 引脚底层配置

  • 输入类型:下拉输入;

  • 引脚底层配置代码:

{GPIO_InitTypeDef  GPIO_InitStructure;/*使能 APB2 - PD端口时钟*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);  /*引脚配置*/GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_8 ;               // 引脚 PD.8 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       // 频率为50MHzGPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;           // 输入类型(下拉输入)   GPIO_Init(GPIOD, &GPIO_InitStructure);
}

读取引脚电平:

 uint8_t CurrLevel;                  //当前电平状态/*读取引脚当前电平状态*/CurrLevel = GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_8 );

HAL库函数:GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)

/*** @brief  Reads the specified input port pin.    * @param  GPIOx: where x can be (A..G depending on device used) to select the GPIO peripheral* @param  GPIO_Pin: specifies the port bit to read.*         This parameter can be GPIO_PIN_x where x can be (0..15).* @retval The input port pin value.*/
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
{GPIO_PinState bitstatus;/* Check the parameters */assert_param(IS_GPIO_PIN(GPIO_Pin));if ((GPIOx->IDR & GPIO_Pin) != (uint32_t)GPIO_PIN_RESET){bitstatus = GPIO_PIN_SET;}else{bitstatus = GPIO_PIN_RESET;}return bitstatus;
}
  • 功能: 读取指定引脚的电平;
  • 参数一: GPIOx(x = A……E)
  • 参数二: 对应的引脚;
  • 返回值: 当前引脚的电平;

SMT32标准库函数——GPIO_ReadInputDataBit的使用(类比HAL库函数:HAL_GPIO_ReadPin函数)相关推荐

  1. 基于标准库函数与基于HAL库函数的stm32编程方式

    文章目录 基于标准库函数与基于HAL库函数的stm32编程方式 一.基于标准库 1. 介绍 2. 库函数的STM32串口程序编写 二.基于HAL库 1.介绍 2.HAL库STM32串口程序编写 三.差 ...

  2. 基于标准库函数与基于HAL库函数的stm32编程方式对比

    基于标准库函数与基于HAL库函数的stm32编程方式对比 一.标准库函数 二.HAL库函数 三.差异 四.stdunio IDE试玩 参考资料 一.标准库函数 1.标准库的解释 标准外设库(Stand ...

  3. stm32单片机屏幕一直闪_STM32使用HAL库函数点亮OLED

    OLED屏幕应用十分广泛,我们可以使用STM32单片机对其进行控制,使其显示我们需要的各种数字.字母.汉字.图画等.我们此次使用下图这款非常普遍的0.96寸OLED液晶屏.此款OLED屏采用IIC的通 ...

  4. stm32的Hal库函数,串口卡死解决方法

    stm32的Hal库函数,串口卡死解决方法 HAL库中强制对串口进行了半双工限制,其实STM32的串口是全双工的,很多时候卡死,是因为我们做了全双工操作导致的卡死,卡死在HAL_LOCK(huart) ...

  5. STM32F103C6T6A USB虚拟串口调测 cubeIDE HAL库函数版一篇就够了

    STM32F103C6T6A  USB虚拟串口调测 cubeIDE HAL库函数版 原先手上有一块STM32F103RTC6测试版,但怎么弄不不出现usb设备(正常插上usb口pc应该会识别一个unk ...

  6. 管道实现父子进程的信息传递(二)【标准流和其文件描述符、fwrite函数、perror函数】

    文章目录 代码实现 标准流 和 标准流文件描述符 代码中用到的函数 fwrite() perror() 在复习进程间的通信方式时又写了一遍,和 管道实现父子进程的信息传递(一)[fork函数.pipe ...

  7. c语言常用库函数使用要点,C语言常用库函数使用要点.doc

    C语言常用库函数使用要点.doc C语言常用库函数使用要点 C语言常用库函数使用要点 李素萍太原理工大学阳泉学院信息系 C语言提供了丰富的库函数,只有有效地使 用库函数,才能学好,学活C语言.为了- ...

  8. USART库函数中用于清除标志位的一些函数,如读DR寄存器的值清除标志位

    USART库函数中用于清除标志位的一些函数,如读DR寄存器的值清除标志位 刚学M4没多久,对于库函数的使用还有些陌生,因为之前学的是寄存器配置,今天在用库函数配置usart的时候,遇到了不知道该调用哪 ...

  9. Ardunio和HAL库函数的stm32编程

    Ardunio的STM32串口通信 一.安装Ardunio IDE和相关支持库 1.Ardunio是什么 2.安装及配置过程 二.STM32板的串口通信程序 1.代码 2.烧录 三.基于标准库函数与H ...

  10. STM32CubeMX下载安装、配置基本工程(时钟)、用HAL库函数点灯

    1.STM32CubeMX下载安装 从官网下载就可以了,版本最新,而且也挺快的呢,就是要用邮箱注册一下.下载地址 选最后一个Windows的,直接Get Software. 安装很简单,跟着向导一步步 ...

最新文章

  1. 三流Java搞技术,二流Java搞框架,一流Java…
  2. 一口气说出 过滤器 和 拦截器 6个区别,别再傻傻分不清了
  3. c++解析csv 存入数组_使用Apache Commons CSV在Java中读写CSV
  4. ucontext-人人都可以实现的简单协程库
  5. POJ 3279(Fliptile)题解
  6. [NOIP2002] 提高组 洛谷P1031 均分纸牌
  7. storm的基本概念
  8. .net 任务(Task)
  9. 来了!华为首款5G双模手机Mate 20 X (5G)发布:这个价格香吗?
  10. python函数没有修改列表_Python:通过引用创建一个修改列表的函数不是值
  11. Vue.js-----轻量高效的MVVM框架(二、Vue.js的简单入门)
  12. XWindow与GtkWindow的转换
  13. secure CRT 运行脚本
  14. 1946年产生的第一台电子计算机6,1946年第一台计算机在美国诞生——青夏教育精英家教网——...
  15. 笔记本风扇声音大怎么办
  16. 网站关键词优化技巧都有哪些?如何进行优化?
  17. 参加《前沿科学国际研讨会》的世界著名学者简介
  18. GEE (Google Earth Engine)高阶学习一 影像分割
  19. 用Python编写的简化版微信客户端
  20. Vitamio多媒体开发框架

热门文章

  1. 目标板(linux)与PC 网卡 直连(TFTP)
  2. R语言入门——一文讲明白attach与detach
  3. 微信小程序跳转其他外部网站上
  4. ubuntu下载BT种子安装qBittorrent
  5. 【题解】模拟赛11.22 T4 星际战争
  6. pythonRuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing
  7. Springboot实现定时任务调度
  8. react插件,树状图(可自由定义子节点结构,大小,样式)
  9. 【软件需求工程】北理的恶龙们04——项目成果总结
  10. jquery html() 获取自己