zoukankan      html  css  js  c++  java
  • 嵌入式 Linux 如何操作 GPIO ?

    作者:刘凯
    链接:https://www.zhihu.com/question/19704852/answer/19760467
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    如果是在已经适配好的linux内核上,那么相信已经有了完成的gpiochip,可以在用户空间/sys/class/gpio目录下看到,如:
    export
    gpiochip0/
    gpiochip32/
    gpiochip64/
    gpiochip96/
    unexport

    然后对照手册看下需要用到哪个GPIO,举个例子:

    如果使想用GPIO1_20
    那么GPIO Number就是 1 x 32 + 20 = 54

    使用分两种情况:
    1. 用户空间:
    echo 54 > export
    这样在这个/sys/class/gpio目录下就会产生gpio54文件夹
    在文件夹下需要用到的有两个文件:
    direction 用来配置输入(in)还是输出(out)
    value 如果这个GPIO配置成了输入,那么通过cat value可以查看当前这个GPIO是什么电位;如果配置成了输出,那么可以通过echo 1/0 > value给这个GPIO口指定输出电平。

    2. 内核空间(驱动):
    #include <linux/gpio.h>
    gpio_request_one(54, GPIOF_INIT_HIGH, "gpio1_20")
    这里是配置成输出,默认高电平,别名(label)为gpio1_20——就是给你的IO口取个名字。
    gpio_request_one(54, GPIOF_IN, "gpio1_20")
    这个就是配置成输入。
    使用完后别忘了free
    gpio_free(54);
    具体GPIO接口详见:Linux/Documentation/gpio.txt

  • 相关阅读:
    PYTHON压平嵌套列表
    linux下IPTABLES配置详解
    Python面试必须要看的15个问题
    两个实用的Python的装饰器
    Python的16个“坑”
    python实现不可修改的常量
    51nod-1322: 关于树的函数
    51nod-1310: Chandrima and XOR
    51nod-1296: 有限制的排列
    51nod-1277: 字符串中的最大值
  • 原文地址:https://www.cnblogs.com/Ph-one/p/8929602.html
Copyright © 2011-2022 走看看