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

【Orange Pi 5嵌入式应用编程】-用户空间GPIO控制

用户空间GPIO控制

文章目录

  • 用户空间GPIO控制
    • 1、嵌入式Linux的GPIO子系统介绍
      • 1.1 sysfs文件访问GPIO
      • 1.2 通过字符设备访问GPIO
      • 1.3 库与工具
    • 2、RK3588的GPIO介绍
    • 3、用户空间操作GPIO编程
      • 3.1 硬件准备
      • 3.2 通过libgpio操作GPIO
        • 3.2.1 GPIO输出
        • 3.2.3 GPIO输入
        • 3.2.3 边沿事件检测(中断)
      • 3.3 wiringPi操作GPIO
      • 3.3.1 GPIO输出
      • 3.3.2 GPIO输入

1、嵌入式Linux的GPIO子系统介绍

GPIO是General Purpose I/O的缩写,即通用输入输出端口, 简单来说就是MCU/CPU可控制的引脚,这些引脚通常有多种功能, 最基本的是高低电平输入检测和输出, 部分引脚还会与主控器的片上外设绑定, 如作为串口、I2C、网络、电压检测的通讯引脚。

Linux提供了GPIO子系统驱动框架, 使用该驱动框架可以把CPU的GPIO引脚导出到用户空间, 用户通过访问/sys文件系统进行控制, GPIO子系统支持把引脚用于基本的输入输出功能, 其中输入功能还支持中断检测。 在Linux内核源码的“Documentation/gpio”目录可找到关于GPIO子系统的说明。

为了管理GPIO注册和分配,Linux内核中有一个名为gpiolib的框架。此框架为在内核空间中运行的设备驱动程序和用户空间应用程序提供 API。

在这里插入图片描述

1.1 sysfs文件访问GPIO

在 Linux 版本 4.7 之前,在用户空间中管理 GPIO

相关文章:

  • Lenovo SR850服务器亮黄灯维修和升级CPU扩展模块
  • qt使用QDomDocument读写xml文件
  • SpringBoot 流式输出时,正常输出后为何突然报错?
  • 《Windows PE》3.2.3 NT头-扩展头
  • Vscode、小皮面板安装
  • 智能招聘系统小程序的设计
  • OpenCL 学习(1)---- OpenCL 基本概念
  • PGMP-03战略一致性
  • 解决docker一直出现“=> ERROR [internal] load metadata for docker.io/library/xxx“的问题
  • 【Kubernetes】常见面试题汇总(四十)
  • 大联大友尚集团推出基于炬芯科技产品的蓝牙音箱方案
  • Linux-基础篇文件权限和组的管理-练习实践(附答案)
  • 算法打卡:第十一章 图论part11
  • RabbitMQ的高级特性-事务
  • 深度学习之贝叶斯分类器
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • iOS 系统授权开发
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • js中forEach回调同异步问题
  • MySQL的数据类型
  • python 学习笔记 - Queue Pipes,进程间通讯
  • python_bomb----数据类型总结
  • Vue UI框架库开发介绍
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 基于Android乐音识别(2)
  • 简单实现一个textarea自适应高度
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 学习笔记TF060:图像语音结合,看图说话
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 自定义函数
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • elasticsearch-head插件安装
  • 阿里云API、SDK和CLI应用实践方案
  • ​ArcGIS Pro 如何批量删除字段
  • ​人工智能书单(数学基础篇)
  • (7)STL算法之交换赋值
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (C语言)fread与fwrite详解
  • (zhuan) 一些RL的文献(及笔记)
  • (二)丶RabbitMQ的六大核心
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (九)One-Wire总线-DS18B20
  • (力扣)1314.矩阵区域和
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (五)关系数据库标准语言SQL
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)socket Aio demo
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .net core 的缓存方案
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 项目中发送电子邮件异步处理和错误机制的解决方案
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .net中的Queue和Stack
  • @antv/x6 动态的修改attr与prop,以及动态改变节点的大小