0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用指南|基于TQT507开发板介绍如何控制GPIO

天嵌股份 2023-05-30 10:39 次阅读


本文档介绍了应用层如何控制 GPIO,适用于天嵌开发板TQT507 。

1.sysfs 方式控制GPIO

通过 sysfs 方式进行操控,进入到/sys/class/gpio 目录下

可以看到该目录下包含两个文件 export、unexport以及2个gpiochipX(X 等于 0、 352)命名的文件夹。

1.1 gpiochipX

gpiochipX:当前 SoC 所包含的 GPIO 控制器, 每一个 gpiochipX 文件夹用来管理一组 GPIO。随便进到其中某个目录下,可以看到这些目录下包含了如下文件 :

在这个目录我们主要关注的是 base、 label、 ngpio 这三个属性文件,这三个属性文件均是只读、不可写。

base:与 gpiochipX 中的 X 相同,表示该控制器所管理的这组 GPIO 引脚中最小的编号。每一个 GPIO引脚都会有一个对应的编号, Linux 下通过这个编号来操控对应的 GPIO 引脚。

label:该组 GPIO 对应的标签,也就是名字

ngpio:该控制器所管理的 GPIO 引脚的数量(所以引脚编号范围是:base ~ base+ngpio-1)

1.2 export

export:用于将指定编号的GPIO引脚导出。在使用 GPIO引脚之前,需要将其导出,导出成功之后才能使用它。注意export文件是只写文件,不能读取,将一个指定的编号写入到export文件中即可将对应的 GPIO 引脚导出。

导出成功之后会发现在/sys/class/gpio 目录下生成了一个名为 gpio0 的文件夹(gpioX, X 表示对应的编号),如上图所示。这个文件夹就是导出来的 GPIO 引脚对应的文件夹,用于管理、控制该 GPIO 引脚 。

1.3 unexport

unexport:将导出的 GPIO 引脚删除。当使用完 GPIO 引脚之后,我们需要将导出的引脚删除,同样该文件也是只写文件、不可读,譬如:echo 0 > unexport ,删除导出的编号为 0 的 GPIO 引脚。删除成功之后,之前生成的 gpio0 文件夹就会消失!


1.4 gpioX

将指定的编号写入到 export 文件中,可以导出指定编号的 GPIO 引脚,导出成功之后会在/sys/class/gpio目录下生成对应的 gpioX(X表示 GPIO 的编号)文件夹,以前面所生成的 gpio0 为例,进入到 gpio0 目录,该目录下的文件如下所示

我们主要关心的文件是 active_low、 direction、 edge 以及 value 这四个属性文件,接下来分别介绍这四个属性文件的作用:

direction:配置 GPIO 引脚为输入或输出模式,该文件可读、可写。

读表示查看 GPIO 当前是输入还是输出模式;

写表示将 GPIO 配置为输入或输出模式;

读取或写入操作可取的值为"out"(输出模式)和"in"(输入模式),如下所示

value:在 GPIO 配置为

输出模式下,向 value 文件写入"0"控制 GPIO 引脚输出低电平,写入"1"则控制 GPIO 引脚输出高电平;

输入模式下,读取 value 文件获取 GPIO 引脚当前的输入电平状态。

譬如:

获取 GPIO 引脚的输入电平状态

控制 GPIO 引脚输出高电平

active_low:这个属性文件用于控制极性, 可读可写,默认情况下为 0

# active_low 等于 0 时

edge:控制中断的触发模式,该文件可读可写。在配置 GPIO 引脚的中断触发模式之前,需将其设置为输入模式:

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

1.5 GPIO对应引脚计算方法

全志的GPIO号在 sunxi-gpio.h 中定义

#define SUNXI_BANK_SIZE 32

计算方式--举两个例子

a、PA13

PA 是从0开始定义的,那么就是:0 +13 = 13,那么 PA13 的GPIO号 就是 GPIO13

b、PE10

PE 是从128开始定义的,那么就是:128 + 10 = 138,那么 PE10 的GPIO号 就是 GPIO138

2.利用 sunxi_pinctrl 的 debug 节点

挂载文件节点,并进入相应目录:

mount -t debugfs none /sys/kernel/debug cd /sys/kernel/debug/sunxi_pinctrl

2.1查看 pin 的配置

echo PC2 > sunxi_pin cat sunxi_pin_configure

2.2修改 pin 属性

每个 pin 都有四种属性,如复用 (function),数据 (data),驱动能力 (dlevel),上下拉 (pull),

修改 pin 属性的命令如下:

echo PC2 1 > pull cat sunxi_pin_configure //查看修改情况


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发板
    +关注

    关注

    25

    文章

    4429

    浏览量

    93996
  • GPIO
    +关注

    关注

    16

    文章

    1133

    浏览量

    50573
收藏 人收藏

    评论

    相关推荐

    TQT507开发板如何修改和保存内核配置

    本文档介绍如何在开发时修改和保存内核配置,适用于开发板TQT507。 1.修改内核配置 编译时系统会先检测当前内核源码目录下是否存在.config文件,如果存在,直接使用此配置.con
    的头像 发表于 12-28 14:13 182次阅读
    <b class='flag-5'>TQT507</b><b class='flag-5'>开发板</b>如何修改和保存内核配置

    【先楫HPM5361EVK开发板试用体验】GPIO使用,点灯

    (General Purpose Input/Output)来控制输入输出功能。 GPIO使用是HPM5361EVK开发板的一个重要特性,可以通过简单的配置来实现对IO口进行控制。在试
    发表于 12-10 16:57

    T507开发板如何修改和保存内核配置

    本文档介绍如何在开发时修改和保存内核配置,适用于开发板TQT507。1.修改内核配置编译时系统会先检测当前内核源码目录下是否存在.config文件,如果存在,直接使用此配置.confi
    的头像 发表于 12-08 11:26 225次阅读
    T<b class='flag-5'>507</b><b class='flag-5'>开发板</b>如何修改和保存内核配置

    RA6M3 RT-Thread* LVGL HMI Board开发实践指南-GPIO实践

    RT-Thread即将发布一系列RA6M3外设驱动的实践指南,我们将使用瑞萨RA6M3 HMI-Board 开发板,带领大家上手RT-Thread设备驱动, 本篇文章将介绍GPIO外设
    的头像 发表于 11-30 19:05 515次阅读
    RA6M3 RT-Thread* LVGL HMI Board<b class='flag-5'>开发</b>实践<b class='flag-5'>指南</b>-<b class='flag-5'>GPIO</b>实践

    全志T507-H技术帖 | 去掉IO扩展芯片后保留扩展引脚功能的实现方法

    飞凌嵌入式推出的OKT507-C作为一款广受欢迎的开发板拥有丰富的功能接口,而实际上OKT507-C开发板的CPU引脚资源是比较紧缺的,那么它究竟是如何提供如此丰富的接口资源的呢?答案
    发表于 11-09 17:14

    方法|基于T507开发板讲如何将占用引脚配置为普通GPIO

    方法|基于T507开发板讲如何将占用引脚配置为普通GPIO
    的头像 发表于 11-09 13:59 267次阅读
    方法|基于T<b class='flag-5'>507</b><b class='flag-5'>开发板</b>讲如何将占用引脚配置为普通<b class='flag-5'>GPIO</b>

    为全志T507-H开发板配置Samba服务,高效实现跨系统的文件共享

    的共享。使用Samba可以方便地在Linux、Windows和Mac等不同平台之间共享文件,大大提高了文件的传输效率。 下面小编为大家介绍如何在飞凌嵌入式OKT507-C开发板上架设Samba服务
    发表于 11-08 09:34

    如何在全志T507开发板上架设Samba服务

    的共享。使用Samba可以方便地在Linux、Windows和Mac等不同平台之间共享文件,大大提高了文件的传输效率。 下面小编为大家介绍如何在飞凌嵌入式OKT507-C开发板上架设Samba服务。01
    发表于 10-30 13:09

    为T507-H开发板配置Samba服务,高效实现跨系统的文件共享

    本文将为大家介绍如何在飞凌嵌入式OKT507-C开发板上架设Samba服务。
    的头像 发表于 10-20 08:01 531次阅读
    为T<b class='flag-5'>507</b>-H<b class='flag-5'>开发板</b>配置Samba服务,高效实现跨系统的文件共享

    迅为RK3568开发板GPIO之外接模块

    迅为RK3568开发板GPIO之外接模块
    的头像 发表于 08-24 17:41 667次阅读
    迅为RK3568<b class='flag-5'>开发板</b><b class='flag-5'>GPIO</b>之外接模块

    基于博流BL606P音视频开发板GPIO点灯教程

    本文是关于开发者 swzswz 基于BL606P-DVK开发板实战开发的系列文章中的一篇,主要介绍GPIO点灯,后面还会持续更新社区
    的头像 发表于 07-17 10:54 447次阅读
    基于博流BL606P音视频<b class='flag-5'>开发板</b>的<b class='flag-5'>GPIO</b>点灯教程

    基于TQT507开发板分享如何添加自启动应用程序

    1. 什么是自启动应用程序 自启动应用程序是指在操作系统启动时自动开始运行的应用程序。通常,这些应用程序被称为守护进程或服务,它们可以在后台运行并提供某种类型的服务。例如,Web 服务器、数据库服务器等等都可以设置为自启动应用程序。 2. 系统启动流程 3. init,inittab,init.d,rcX.d 4. /etc/inittab 文件 init 程序会读取/etc/inittab这个文件,inittab 由若干条指令组成。每条指令的结构都是一样的,由以“:”分隔的 4 个段组成,格式如下 : : : :每个指令
    的头像 发表于 06-07 18:18 334次阅读
    基于<b class='flag-5'>TQT507</b><b class='flag-5'>开发板</b>分享如何添加自启动应用程序

    如何定制Buildroot文件系统-基于TQT507开发板

    本文档介绍开发时 如何定制文件系统 (buildroot添加应用软件/文件),适用于天嵌开发板TQT507 。 **1.Buildroot简介** Buildroot是Linux平台
    发表于 06-01 09:03

    【CW32饭盒派开发板试用体验】开发板简单介绍开发板初体验

    今天开箱一款基于CW32F030C8T6的开发板开发板命名为CW32饭盒派。 下面简单的对开发板做个介绍: CW32饭盒派板载资源非常丰富:有一电位器、蜂鸣器、3路用户按键、3路指示
    发表于 05-22 10:56

    【CW32饭盒派开发板试用体验】开发板简单介绍及初体验

    今天开箱一款基于CW32F030C8T6的开发板开发板命名为CW32饭盒派。 下面简单的对开发板做个介绍: CW32饭盒派板载资源非常丰富:有一电位器、蜂鸣器、3路用户按键、3路指示
    发表于 05-22 10:47