问题:

当按键按下设置某个GPIO为高电平时,如果按键一直不释放,则会一直去设置

解决思路:

  • 设置一个标志,设置了一次后就将标志位置1。会出现两个问题:
  1. 如果执行了,但是实际当前设置ODR寄存器时出错,可能会导致设置出问题
  2. 我们还需要额外添加条件去将清除标志位,在代码中增加了一个全局变量(或静态变量)
  • 判断当前引脚ODR的值,查看了stm8和stm32数据手册,ODR寄存器都是可读可写的
//stm8读ODR函数
uint8_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)
{return ((uint8_t)GPIOx->ODR);
}//stm32读ODR函数
uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)
{/* Check the parameters */assert_param(IS_GPIO_ALL_PERIPH(GPIOx));return ((uint16_t)GPIOx->ODR);
}
  • 在stm8中,当设置IO口为输出,此时去读IDR寄存器的值,电平状态也会随着ODR改变。

这个算是一个发现吧,我也不知道是为什么,具体还是按读ODR的方法进行判断IO口设置输出是否成功。

GPIO设置高低电平相关推荐

  1. 2.02-外设篇-GPIO输出高低电平

    ESP8266:SDK开发(源码见资料源码) 开发板购买链接:开发板购买链接 资料源码:https://gitee.com/yang456/Learn8266ForSDK.git 开发软件:https ...

  2. 笔记(5) —— GPIO 输出高低电平

    文章目录 一. 适用功能 二. 硬件设计(参考) 三. 软件设计 ① 使用到的固件库文件 ② 代码整理 一. 适用功能 GPIO 翻转.LED 闪烁.无源蜂铃器.跑马灯等 GPIO 输出高低电平控制. ...

  3. 笔记(6) —— GPIO检测高低电平

    文章目录 一.适用功能 二. 硬件设计(参考) 三. 软件设计 ① 使用到的固件库文件 ② 代码整理 一.适用功能 检测按键,光电开关,水位传感器等检测 GPIO 输入电平信号. 二. 硬件设计(参考 ...

  4. 16、JETSON NANO 对特定目标进行识别和gpio输出高低电平报警

    基本思想:需要对特定目标进行识别和报警,TensorRT做的的效果会极其好,但是没时间,先使用ncnn的yolo-fastest做个例子吧,后期修改为TensorRT框架识别吧,该博客主要学习如何控制 ...

  5. STM32配置GPIO的高低电平

    一.在keil对应的工程文件的对应位置新建gpio.h和gpio.c文件: 二.编辑gpio.c文件: #include "stm32f10x.h" //引用头文件 #includ ...

  6. R40gpio输出无高低电平变化【原创】

    在配置GPIO控制继电器时,其中有几个在GPIO发送高低电平继电器没有变化,测试继电器是好的,于是用万用表测IO,发现推送高低电平时,没有发生改变.几经折腾,发现该组PG的电源没开,硬件同事找到该组G ...

  7. STM32F103程序设计-5-控制引脚高低电平的实现

    控制引脚高低电平的实现 开发板上可以通过控制引脚高低电平的实现功能的模块:蜂鸣器.LED灯. 一.GPIO操作步骤: 1.GPIO对应时钟打开 2.设置GPIO的引脚.速度.输出模式等参数 3.引脚输 ...

  8. uboot中添加hi35xx的GPIO设置

    以hi3531d为例,具体地址可以参考手册:ReleaseDoc/zh/00.hardware/chip中Hi3531DV100 H.265编解码处理器用户指南.pdf,内容中的14.外围设备–14. ...

  9. 外部中断----高低电平触发,(边沿触发)上升沿触发和下降沿触发区别

    外部中断可以分为电平触发和边缘触发两种,那么这两种中断有什么区别,我们今天讲解下 1什么是中断 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生): CPU暂时中断当前的工作, ...

最新文章

  1. null NULL is_null 竟然不一样
  2. gitlab新建项目_基础架构之GitLab
  3. 【64QAM同步】基于FPGA/MATLAB的64QAM同步系统的实现
  4. stackoverflow上Java相关回答整理翻译FAQ top 100
  5. 中国六个漂亮的古镇风景名胜区网站欣赏
  6. Angular 项目工程文件结构介绍
  7. socket closed是什么意思_socket请求
  8. 计算机组成原理R0bus是什么,计算机组成原理微程序控制器实验
  9. C++ Primer 第六章 语句
  10. dml语句包括哪些_聊聊MySQL基本操作DDL,DML,DQL,DCL
  11. java 实例 登录用户 equals的用法
  12. Android 自定义View自定义属性的声明
  13. 以中划线开头正则表达式_正则表达式 汉字、数字、字母、横杠
  14. 注册表删除chrome插件
  15. 交互式SHELL脚本对话框(whiptail)
  16. jquery ajax提交form表单,jquery+ajax提交form表单方法总结
  17. 解决资源监视器不显示的问题。
  18. html渐变显示动画效果,css3实现背景动态渐变效果
  19. linux 卸载 flash,Linux系统下Flash Player崩溃的一个解决办法分享
  20. panic 和 recover

热门文章

  1. 鸿蒙开发板怎么玩?Neptune开发教程---OpenHarmony开发体验-环境搭建-编译-烧录
  2. Struts2 漏洞信息汇总
  3. like用法--mysql
  4. 传统推荐模型(一)协同过滤算法_UserCF和ItemCF
  5. 计算机网络系统集成有哪些方面,计算机网络中系统集成主要包含哪些?
  6. 网管软件最常用协议SNMP(Simple Network Management Protocol)介绍
  7. OpenCV计算机视觉编程篇三《处理图像的颜色》
  8. 微服务-长轮询异常:SecurityManager accessible to the calling code
  9. LayaAir2.13新特性:新增VR相关功能、渐变环境光、3D自定义分辨率、新的渲染命令、新的动画插值方式、新的粒子功能等等...
  10. java偶数的表达式_十六进制数大于10的正则表达式,在Java中长度应为偶数。