/sys/class/gpio
发布日期:2021-06-29 02:32:42
浏览次数:2
分类:技术文章
本文共 1449 字,大约阅读时间需要 4 分钟。
在嵌入式设备中对GPIO的操作是最基本的操作。一般的做法是写一个单独驱动程序,网上大多数的例子都是这样的。其实linux下面有一个通用的GPIO操作接口,那就是我要介绍的 “/sys/class/gpio” 方式。
首先,看看系统中有没有“/sys/class/gpio”这个文件夹。如果没有请在编译内核的时候加入 Device Drivers —> GPIO Support —> /sys/class/gpio/… (sysfs interface)。
/sys/class/gpio 的使用说明:
01 | gpio_operation 通过/sys/文件接口操作IO端口 GPIO到文件系统的映射 |
02 | * 控制GPIO的目录位于/sys/ class /gpio |
03 | * /sys/ class /gpio/export文件用于通知系统需要导出控制的GPIO引脚编号 |
04 | * /sys/ class /gpio/unexport 用于通知系统取消导出 |
05 | * /sys/ class /gpio/gpiochipX目录保存系统中GPIO寄存器的信息,包括每个寄存器控制引脚的起始编号base,寄存器名称,引脚总数 导出一个引脚的操作步骤 |
06 | * 首先计算此引脚编号,引脚编号 = 控制引脚的寄存器基数 + 控制引脚寄存器位数 |
07 | * 向/sys/ class /gpio/export写入此编号,比如12号引脚,在shell中可以通过以下命令实现,命令成功后生成/sys/ class /gpio/gpio12目录,如果没有出现相应的目录,说明此引脚不可导出: |
08 | echo 12 > /sys/ class /gpio/export |
09 | * direction文件,定义输入输入方向,可以通过下面命令定义为输出 |
10 | echo out > direction |
11 | * direction接受的参数:in, out, high, low。high/low同时设置方向为输出,并将value设置为相应的1/0。 |
12 | * value文件是端口的数值,为1或0. |
13 | echo 1 > value |
下面在2440下进行一下测试
1.取得GPIO信息,在终端中敲入以下命令
1 | $ cd /sys/ class /gpio |
2 | $ for i in gpiochip* ; do echo `cat $i/label`: `cat $i/base` ; done |
终端中显示如下
1 | GPIOA: 0 |
2 | GPIOE: 128 |
3 | GPIOF: 160 |
4 | GPIOG: 192 |
5 | GPIOH: 224 |
6 | GPIOB: 32 |
7 | GPIOC: 64 |
8 | GPIOD: 96 |
2.计算GPIO号码
我们把GPE11用来控制LED。
GPE0的头是128,GPE11 就是128+11 = 139.
1 | $ echo 139 >; /sys/ class /gpio/export |
ls 一下看看有没有 gpio139 这个目录
3.GPIO控制测试。
控制LED所以是输出。
所以我们应该执行
1 | $ echo out > /sys/ class /gpio/gpio139/direction |
之后就可以进行输出设置了。
1 | $ echo 1 > /sys/ class /gpio/gpio139/value |
or
1 | $ echo 0 > /sys/ class /gpio/gpio139/value |
转载地址:https://blog.csdn.net/yyyyyyyyyywwwwwwwwww/article/details/43938789 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月03日 12时58分50秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Atitit 工程师程序员技术级别对应表与主要特征 P1--p6 说明 类别 职称 对应技术标志 P5 高级工程师 工程师类 一般四五年 P6 资深开发 工程师类 78年经历 P7 P7
2019-04-29
Atitit btree 搜索原理 目录 第一节 左边小右边大 的有序树 1 第二节 平衡算法 1 第三节 层次高度一般3--4层 3 第四节 类似索引 3 第二章 Ref 5 第一节 左边小右
2019-04-29
Atitit保证架构超前性 前瞻性 目录 第一章 为什么需要修改代码 1 第一节 业务增加功能 1 第二节 增加字段 1 第三节 增加表数据需要查询 修改 1 第四节 类库升级 1 第二章 简单抽象
2019-04-29
Atitit 存储与数据库性能调优流程目录1. 数据库出现性能瓶颈,对外表现有几个方面:
2019-04-29
paip.tree 生成目录树到txt后的折叠查看
2019-04-29
Attit 现代编程语言重要特性目录第一章 类型系统 基本三大类型 2第一节 字符串 数字 bool 2第二节 推断局部变量 2第三节 动态类型 2第二章 可读性与开发效率 简单性 2
2019-04-29
Atitit glb 1tie 2tie city lst 一二线城市列表数据约50个一线城市Alpha ++ 阿尔法++,,London 伦敦,,New York 纽约,,Alpha +
2019-04-29
Atitit fms Strait (海峡) lst 数据列表目录1. 4大洋 12. 著名的海大约40个,总共约55个海 13. 海区列表 23.1. 、波利尼西亚(Polynesia,
2019-04-29
Atitit Major island groups and archipelagos 主要的岛群和群岛目录资料目录1. 岛群 波利尼西亚(Polynesia, 美拉尼西亚(Melanesia,
2019-04-29
Atitit trave islands list 旅游资源列表岛屿目录1. 东南亚著名的旅游岛屿 21.1. Cjkv 日韩 冲绳 琉球 济州岛 北海道 21.2. 中国 涠洲岛 南澳
2019-04-29
Atitit 旅游强县城 名单列表 旅游资源但其实,北上广深大概只占全国面积的0.33%,加上新一线城市,也只是占了全国面积的3%。在剩下的97%的土地上,有着约300个地级市,3000个
2019-04-29
【论文-笔记】海防雷达仿真系统中PPI的设计与实现
2019-04-29
2019-10-15 相交链表
2019-04-29
2019-10-28 奇偶链表
2019-04-29
2019-10-29 移除链表元素
2019-04-29