当前位置: 首页 > 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

http://www.lryc.cn/news/386196.html

相关文章:

  • 单点登录方法
  • springboot集成JPA并配置hikariCP连接池问题解决
  • vue2的双向绑定
  • Vue3 国际化i18n
  • 算法金 | 使用随机森林获取特征重要性
  • 网络安全的重要性
  • Leetcode40 无重复组合之和
  • 详解MATLAB中处理日期和时间的函数
  • Java养老护理助浴陪诊小程序APP源码
  • go的singleFlight学习
  • 高电压技术-冲击高压发生器MATLAB仿真
  • 【STM32】SysTick系统滴答定时器
  • 编码遵循五大设计原则创建出更加健壮、可维护和可扩展的软件系统
  • 记录一个问题
  • ONLYOFFICE 8.1版本桌面编辑器测评:重塑办公效率的巅峰之作
  • 【shell脚本速成】python安装脚本
  • Redis报错:MISCONF Redis is configured to save RDB snapshots
  • 关于使用绿联 USB-A转RJ45 2.5G网卡提速的解决问题
  • Qt: QPushButton 按钮实现 上图标下文字
  • 使用阿里云效API操作流水线
  • 使用命令行创建uniapp+TS项目,使用vscode编辑器
  • ABC355 Bingo2
  • Spring+Vue项目部署
  • 【uml期末复习】统一建模语言大纲
  • Linux高级IO
  • go-admin-ui开源后台管理系统华为云部署
  • 点云入门知识
  • HTML静态网页成品作业(HTML+CSS+JS)——家乡莆田介绍网页(5个页面)
  • #### grpc比http性能高的原因 ####
  • 微软Edge浏览器搜索引擎切换全攻略