当前位置: 首页 > news >正文

【应用开发二】GPIO操控(输出、输入、中断)

1 操控GPIO方式

控制目录:/sys/class/gpio
/sys/class/gpio目录下文件如下图所示:
在这里插入图片描述

1.1 gpiochipX目录

功能:当前SoC所包含的所有GPIO控制器

i.mx6ull一共包含5个GPIO控制器,分别为GPIO1~5分别对应gpiochip0gpiochip32gpiochip64gpiochip96gpiochip1285个文件夹。每个gpiochipX控制一组GPIO。随便进入一个gpiochip X目录,内容如下图所示:
在这里插入图片描述
主要关注的目录是baselabelngpio这三个属性文件,这三个属性文件均是只读,不可写

  • base:表示该控制器所管理的这组GPIO引脚中的最小编号。数值上与gpiochipX中的X值相同。
    在这里插入图片描述
  • lable:该组GPIO对应的标签,也就是名字
    在这里插入图片描述
  • ngpio:该控制器所管理的GPIO引脚数量(所以引脚编号范围是:base~base+ngpio-1)
    在这里插入图片描述

1.2 export

功能:用于将指定编号的GPIO引脚导出

GPIO 引脚在使用之前,需要将其导出,导出成功之后才能使用。将一个指定的编号N写入到export文件中,即可将对应GPIO引脚导出。export为只写文件,不能读取。文件导出之后,将在/sys/class/gpio目录下生成一个名为gpioN的文件夹用于管理、控制GPIO引脚。
在这里插入图片描述

1.3 unexport

功能:删除导出的GPIO引脚

使用完GPIO引脚之后,需要将导出的引脚删除,同样该文件为export为只写不可读文件
删除成功之后,之前生成的GPIO文件就会消失!

注:并不是所有的文件夹都可以导出成功,如果引脚在内核中被使用了,就会导出失败。

gpioX目录

功能:gpio引脚控制器

以前面生成的gpio0为例,进入到gpio0目录,该目录下的文件如下图所示:
在这里插入图片描述
主要关心文件为:active_lowdirectionedge以及value

  • direction:配置gpio引脚输入输出模式。可读可写
    表示当前gpio引脚是输入还是输出模式。
    写:配置gpio方向
    读:获取引脚方向
    读取或写入值:

      "out"  ->  输出 "in"  ->   输入
    
  • value:引脚值

    • 输入模式:
      “0” -> 输出低电平
      “1” -> 输出高电平
    • 输入模式:
      读取value文件获取当前引脚电平状态
  • active_low:控制极性,可读可写,默认0
    与value结合使用。

    # active_low 等于 0 时
    echo "0" > active_low
    echo "out" > direction
    echo "1" > value  #输出高
    echo "0" > value  #输出低# active_low 等于 1 时
    $ echo "1" > active_low
    $ echo "out" > direction
    $ echo "1" > value #输出低
    $ echo "0" > value #输出高
    
  • edge:中断触发模式

    "none":非中断引脚
    "rising":上升沿触发
    "falling":下降沿触发
    "both":边沿触发
    

    当引脚被设置为中断后,使用poll()函数监听引脚的电平状态变化

2 程序

GPIO

相关文章:

【应用开发二】GPIO操控(输出、输入、中断)

1 操控GPIO方式 控制目录:/sys/class/gpio /sys/class/gpio目录下文件如下图所示: 1.1 gpiochipX目录 功能:当前SoC所包含的所有GPIO控制器 i.mx6ull一共包含5个GPIO控制器,分别为GPIO1~5分别对应gpiochip0、gpiochip32、gpi…...

单点登录方法

一、父域cookie:两个有相同父域名的二级域名之间可以跨域传递cookie //注意该接口的地址也是baidu.com下属的二级域名:a.baidu.com //全部接口地址为:a.baidu.com/dev-api/system/ecdWeb/login。如果不是a.baidu.com那么根本带不过去 //其实可以理解为通过该方法将cookie传给…...

springboot集成JPA并配置hikariCP连接池问题解决

一、引入需要的依赖 springboot版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-parent</artifactId><version>2.3.2.RELEASE</version><relativePath/></parent> jpa依赖 <!--…...

vue2的双向绑定

vue是一个mvvm框架&#xff0c;即数据双向绑定&#xff0c;即当数据发生变化的时候&#xff0c;视图也就发生变化&#xff0c;当视图发生变化的时候&#xff0c;数据也会跟着同步变化。 Vue.js 2 中的双向绑定是通过 v-model 指令实现的。v-model 指令可以在表单输入元素上创建…...

Vue3 国际化i18n

国际化i18n方案 1. 什么是i18n2. i18n安装、配置及使用2.1 安装2.2 配置2.3 挂载到实例2.4 组件中使用2.5 语言切换 1. 什么是i18n i18n 是“国际化”的简称。在资讯领域&#xff0c;国际化(i18n)指让产品&#xff08;出版物&#xff0c;软件&#xff0c;硬件等&#xff09;无…...

算法金 | 使用随机森林获取特征重要性

大侠幸会幸会&#xff0c;我是日更万日 算法金&#xff1b;0 基础跨行转算法&#xff0c;国内外多个算法比赛 Top&#xff1b;放弃 BAT Offer&#xff0c;成功上岸 AI 研究院 Leader&#xff1b; <随机森林及其应用领域> 随机森林是一种强大的机器学习算法&#xff0c;其…...

网络安全的重要性

网络安全的重要性 网络安全是指保护网络系统免受未授权的访问、攻击、破坏或未经授权的数据泄露的能力。随着互联网的普及和数字化进程的加速&#xff0c;网络安全问题日益凸显&#xff0c;成为个人、企业和国家必须面对的重要挑战。 网络安全的威胁 网络安全威胁包括黑客攻…...

Leetcode40 无重复组合之和

题目描述&#xff1a; 给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff1a;解集不能包含重复的组合。 思路分析 这个题是…...

详解MATLAB中处理日期和时间的函数

在MATLAB中处理日期和时间时&#xff0c;可以使用多种函数来进行计时和时间差计算。以下是对一些常用函数的详细解释&#xff1a; 1. tic 和 toc 用途&#xff1a;用来测量一段代码执行的时间。用法&#xff1a;tic; % 启动秒表 % 你的代码 elapsedTime toc; % 停止秒表&…...

Java养老护理助浴陪诊小程序APP源码

&#x1f496;护理助浴陪诊小程序&#x1f496; 一、引言&#xff1a;养老新趋势&#x1f331; 在快节奏的现代生活中&#xff0c;养老问题逐渐成为了社会关注的焦点。如何为老年人提供便捷、贴心的服务&#xff0c;让他们晚年生活更加安心、舒适&#xff0c;是我们每个人都需…...

go的singleFlight学习

Package singleflight provides a duplicate function call suppression mechanism “golang.org/x/sync/singleflight” 原来底层是 waitGroup&#xff0c;我还以为等待的协程主动让出 cpu 了&#xff0c;没想到 waitGroup.Wait() 阻塞了 doCall 不但返回值是 func 的 val 和…...

高电压技术-冲击高压发生器MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 冲击电压发生器是产生冲击电压波的装置&#xff0c;用于检验电力设备耐受大气过电压和操作过电压的绝缘性能&#xff0c;冲击电压发生器能产生标准雷电冲击电压波形&#xff0c;雷电冲击电压截波,标准操作冲击…...

【STM32】SysTick系统滴答定时器

1.SysTick简介 CM4内核的处理和CM3一样&#xff0c;内部都包含了一个SysTick定时器&#xff0c;SysTick 是一个24 位的倒计数定时器&#xff0c;当计到0 时 &#xff0c;将 从RELOAD 寄存器中自动重装载定时初值。只要不把它在SysTick 控制及状态寄存器中的使能位清除&#xf…...

编码遵循五大设计原则创建出更加健壮、可维护和可扩展的软件系统

一、单一职责原则&#xff08;SRP&#xff09; * 定义&#xff1a;一个类应该只有一个引起它变化的原因。 * 解释&#xff1a;意味着一个类应该专注于做一件事情&#xff0c;当需求发生变化时&#xff0c;只影响到一个类。这有助于降低类间的耦合&#xff0c;使得代码更易于理…...

记录一个问题

问题描述 如果一个物料既在A总成零件号下计算为托盘库&#xff0c;在B总成零件号下计算为箱库&#xff0c;则放于箱库。 A中选择排名第21的递补进托盘库。&#xff08;也需要判断递补的是否在其他总成零件中为箱库&#xff0c;是的话继续递补判断&#xff09; 解决思路 为了…...

ONLYOFFICE 8.1版本桌面编辑器测评:重塑办公效率的巅峰之作

在数字化办公日益普及的今天&#xff0c;一款高效、便捷且功能强大的桌面编辑器成为了职场人士不可或缺的工具。ONLYOFFICE 8.1版本桌面编辑器凭借其卓越的性能和丰富的功能&#xff0c;成功吸引了众多用户的目光。今天&#xff0c;我们将对ONLYOFFICE 8.1版本桌面编辑器进行全…...

【shell脚本速成】python安装脚本

文章目录 案例需求应用场景解决问题脚本思路案例代码 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留的每一刻&#xff0c;都沐…...

Redis报错:MISCONF Redis is configured to save RDB snapshots

错误提示内容&#xff1a; 2024-06-25 16:30:49 : Connection: Redis_Server > [runCommand] PING 2024-06-25 16:30:49 : Connection: Redis_Server > Response received : -MISCONF Redis is configured to save RDB snapshots, but it is currently not able to pers…...

关于使用绿联 USB-A转RJ45 2.5G网卡提速的解决问题

问题 网络下载速率低 网线是七类网线&#xff0c;外接的USB网卡驱动 我的自带网卡是 I219v 在嵌入了2.5G网络后一直无法到达1.5G以上。 平均测速300~500M 解决方案 更新了USB的网卡驱动 禁用了 I219-V的驱动。测速即可 USB驱动下载地址 https://download.csdn.net/downlo…...

Qt: QPushButton 按钮实现 上图标下文字

效果如下&#xff1a; 实现有如下几种方式&#xff1a; 1. 使用 QPushButton 设置 setStyleSheet 例&#xff1a; ui->recorder->setStyleSheet("QPushButton{"\"border: 1px solid #00d2ff; "\"min-height: 60px; "\"col…...

十年后,编程还会是人类的工作吗?

一个正在被重写的职业剧本站在2026年的中点眺望2036年&#xff0c;没有人能准确预言未来。但作为软件测试从业者&#xff0c;我们或许是离“编程工作是否会被取代”这个答案最近的一群人。因为我们每天的工作&#xff0c;就是审视代码的边界、挖掘逻辑的漏洞、评估系统的风险。…...

从惊叹到依赖:软件定义时代的技术信任与实用指南

1. 从“惊叹”到“依赖”&#xff1a;我们与技术关系的深度剖析“这玩意儿以前没有的时候&#xff0c;我们是怎么活过来的&#xff1f;” 这念头时不时就会冒出来。我能看懂纸质地图&#xff0c;甚至开车时有时觉得它比谷歌地图更靠谱&#xff1b;我也记得在厚厚的黄页里翻找电…...

Photoshop AVIF插件实战:解锁下一代图像格式的完整解决方案

Photoshop AVIF插件实战&#xff1a;解锁下一代图像格式的完整解决方案 【免费下载链接】avif-format An AV1 Image (AVIF) file format plug-in for Adobe Photoshop 项目地址: https://gitcode.com/gh_mirrors/avi/avif-format 为Adobe Photoshop添加AVIF格式支持不再…...

AI应用开发平台RiserFlow实战:从架构解析到智能客服构建

1. 项目概述&#xff1a;从“RiserFlow”看现代AI应用开发范式的演进最近在GitHub上看到一个挺有意思的项目&#xff0c;叫riserlabs/riserflow。光看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但如果你点进去&#xff0c;会发现它其实指向一个更具体的产品&#xff…...

TigerVNC终极指南:快速掌握跨平台远程桌面控制

TigerVNC终极指南&#xff1a;快速掌握跨平台远程桌面控制 【免费下载链接】tigervnc High performance, multi-platform VNC client and server 项目地址: https://gitcode.com/gh_mirrors/ti/tigervnc TigerVNC是一款高性能、跨平台的VNC客户端和服务器软件&#xff0…...

大模型压缩实战:量化、剪枝与蒸馏技术解析与AngelSlim应用

1. 项目概述&#xff1a;从“大”到“小”的模型压缩革命最近在模型部署和推理优化的圈子里&#xff0c;Tencent/AngelSlim 这个项目被讨论得挺多。简单来说&#xff0c;它不是一个全新的模型&#xff0c;而是一套由腾讯开源的、专门用于大语言模型&#xff08;LLM&#xff09;…...

从ARIMA差分到MIM网络:一个老派时间序列技巧如何革新了深度学习预测

从差分思想到记忆网络&#xff1a;传统时间序列技巧如何重塑深度学习架构 在气象预报的雷达回波图中&#xff0c;降水云团的形态每秒钟都在剧烈变化&#xff1b;城市交通流量监测数据里&#xff0c;早晚高峰的波动与平峰期形成鲜明对比&#xff1b;股票市场的价格曲线更是以难以…...

STM32+原理图+PCB程序直流充电桩主控方案源

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&#xff1a;行百…...

黄仁勋CMU演讲:取代你的是会AI的人,所有人同一起跑线,奔跑吧

老黄又当博士了。这是他的第7个荣誉博士学位&#xff0c;而且英特尔CEO陈立武亲自为其授袍。卡内基梅隆大学&#xff08;CMU&#xff09;最新一届毕业典礼上&#xff0c;黄仁勋向5800多名毕业生发表演讲。面对AI浪潮的冲击&#xff0c;所有人都在焦虑、都在担心会不会被AI取代&…...

告别桌面混乱!Ubuntu 16.04 多桌面+Terminator分屏,打造程序员高效工作流

Ubuntu 16.04多桌面与Terminator分屏&#xff1a;构建程序员的高效工作流 作为一名长期在Ubuntu环境下工作的开发者&#xff0c;我深刻体会到工作环境配置对效率的影响。桌面混乱、窗口堆叠、频繁切换不仅浪费时间&#xff0c;还会打断编程的"心流"状态。经过多次迭代…...