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

RK3568-GPIO控制

RK3568-GPIO控制

1. Sysfs接口

实现逻辑

芯片的GPIO由芯片的GPIO控制器来管理,GPIO控制器封装在芯片内部,控制器的驱动芯片厂家已经写好了。RK3568有五组GPIO控制器,每组管理32个引脚,对应/dev下的gpiochip0~4的设备节点。
Linux系统本身就含有GPIO子系统模块,它对下接入GPIO控制器的驱动,对上提供一组API接口给其它驱动调用来管理GPIO控制器。
Sysfs-GPIO通过对GPIO子系统的API的调用实现了一套对用户空间的接口,相当于这是linux官方实现的一个通用GPIO驱动。

在这里插入图片描述

使用方法

  1. 使用时需要打开内核编译选项:Device Drivers-> GPIO Support ->/sys/class/gpio/… (sysfs interface)
  2. 导出GPIO引脚,echo <GPIO编号> > /sys/class/gpio/export
  3. 设置GPIO方向,echo <out/in> > /sys/class/gpio/gpiox/direction
  4. 读写GPIO值,echo <1/0> > /sys/class/gpio/gpiox/value
// pin = bank*32 + group*8 + X 
// 导出引脚GPIO2_D1, pin = 2*32+3*8+1=89
echo 89 > /sys/class/gpio/export//配置引脚为输出
echo out/in > /sys/class/gpio/gpio89/direction//写高电平
echo 1 > /sys/class/gpio/gpio89/value//读状态
cat /sys/class/gpio/gpio89/value//取消导出
echo 89 > /sys/class/gpio/unexport

2. Libgpiod接口

Libgpiod和Sysfs-GPIO的功能是一样的,它是Sysfs-GPIO的改进版。自Linux 4.8起,Sysfs-GPIO接口已被弃用,内核采用libgpiod为用户空间提供接口。之前的版本需要下载安装Libgpiod库才能使用。

参考:https://blog.csdn.net/DRAXY/article/details/125862761

3. 自己写驱动

按照字符设备驱动框架,调用GPIO子系统提供的接口,来实现某些引脚的驱动。
参考:https://blog.csdn.net/taye_year/article/details/126212692

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

相关文章:

  • 2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书南京师范大学图书馆
  • 【MySQL】什么是索引?如何选择索引类型?
  • 第16章 服务安全控制
  • 面试问题总结(1)
  • QUdpSocket Class
  • 如何实现MongoDB数据的快速迁移?
  • react中使用Modal.confirm数据不更新的问题解决
  • 【vue】下拉、上拉刷新
  • el-tree组件的锚点链接
  • 汽车电气架构
  • Spring中添加打印请求头的拦截器
  • LeetCode(力扣)216. 组合总和 IIIPython
  • 无涯教程-JavaScript - IMLOG10函数
  • C++ 学习之深拷贝 和 浅拷贝
  • Qt QtWidgets相关问题汇总
  • 【ubuntu22.04 文件管理器nautilus配置默认终端为alacritty】
  • 信息化发展30
  • css溢出隐藏的五种方法
  • RK3568-UART通信
  • 武警三维数字沙盘电子沙盘虚拟现实模拟推演大数据人工智能开发教程第15课
  • 【Linux从入门到精通】通信 | 共享内存(System V)
  • ubuntu 扩展内存挂载
  • 聚观早报|小米14渲染图曝光;蚂蚁金融大模型正式发布
  • musl libc 动态加载:默认链接脚本
  • 快速排序(递归和非递归两种方法实现)
  • ApiPost7使用介绍 | HTTP Websocket
  • Linux常用命令——convertquota命令
  • Linux 进程基础概念-进程状态、进程构成、进程控制
  • Unity Animation、Animator 的使用
  • Flink--2、Flink部署(Yarn集群搭建下的会话模式部署、单作业模式部署、应用模式部署)