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的值,就是更改不了其值。

  • 相关阅读:
    python
    【转载】【CPU】关于x86、x86_64/x64、amd64和arm64/aarch64
    【百思不得其解1】诡异的速度差异
    LeakCanary 与 鹅场Matrix ResourceCanary对比分析
    android 插件化框架VitualAPK
    android高级篇收录
    滴滴Booster移动APP质量优化框架 学习之旅 三
    滴滴Booster移动APP质量优化框架 学习之旅 二
    滴滴Booster移动APP质量优化框架 学习之旅
    不一样视角的Glide剖析
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/10535903.html
Copyright © 2011-2022 走看看