zoukankan      html  css  js  c++  java
  • GPIO学习——用户空间操作

    Kernel: 4.4

    Soc: msm8996

    1.用户空间通过sysfs操作GPIO

    (1)启用GPIO sysfs interface

    首先看系统中有没有“/sys/class/gpio”这个文件夹。如果没有在编译内核的时候打开 Device Drivers-> GPIO Support-> /sys/class/gpio/… (sysfs interface)

    (2)用户空间通过sysfs控制GPIO

    # echo 9 > /sys/class/gpio/export     执行此命令会在gpio/下生成gpio9目录

    # echo out > gpio9/direction             设置GPIO9方向为输出

    # echo 1 > gpio9/value                          设置GPIO9为高电平

    # echo 0 > gpio9/value                          设置GPIO9为低电平

    # echo 9 > /sys/class/gpio/unexport     关闭对GPIO9的控制

    (3)用户空间编程控制GPIO

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <string.h>
    
    #define GPIO9    9
    
    int main(void)
    {
        FILE *filep = NULL;
        int i=0;
    
        filep = fopen("/sys/class/gpio/export", "w");
        fprintf(filep, "%d", GPIO9);
        fclose(filep);
    
        filep = fopen("/sys/class/gpio/gpio9/direction", "w");
        fprintf(filep, "out");
        fclose(filep);
    
        for(i = 0; i < 50; i++)
        {
            printf("gpio9 value is 1.
    ");
            filep = fopen("/sys/class/gpio/gpio9/value", "w");
            fprintf(filep,"%d",1);
            sleep(1);
            fclose(filep);
    
            printf("gpio9 value is 0.
    ");
            filep = fopen("/sys/class/gpio/gpio9/value", "w");
            fprintf(filep, "%d", 0);
            sleep(1);
            fclose(filep);
    
        }
    
        filep = fopen("/sys/class/gpio/unexport", "w");
        fprintf(filep, "%d", GPIO9);
        fclose(filep);
    
        return 0;
    }

    2.GPIO使用总结

    (1)每个GPIO引脚只能使用gpio_request获取一次,第二次获取就会报-EBUSY,如果知道已经获取了,那么就直接可以使用gpio_set_value()来控制GPIO引脚电平。

    (2)使用regulator-fix probe的GPIO无法通过这种sysfs接口来设置GPIO的值,就是更改不了其值。

  • 相关阅读:
    HDU4366 Successor 线段树+预处理
    POJ2823 Sliding Window 单调队列
    HDU寻找最大值 递推求连续区间
    UVA846 Steps 二分查找
    HDU3415 Max Sum of MaxKsubsequence 单调队列
    HDU时间挑战 树状数组
    UVA10168 Summation of Four Primes 哥德巴赫猜想
    UESTC我要长高 DP优化
    HDUChess 递推
    HDU4362 Dragon Ball DP+优化
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/10535903.html
Copyright © 2011-2022 走看看