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=; 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 = ; i < ; i++)
{
printf("gpio9 value is 1.\n");
filep = fopen("/sys/class/gpio/gpio9/value", "w");
fprintf(filep,"%d",);
sleep();
fclose(filep); printf("gpio9 value is 0.\n");
filep = fopen("/sys/class/gpio/gpio9/value", "w");
fprintf(filep, "%d", );
sleep();
fclose(filep); } filep = fopen("/sys/class/gpio/unexport", "w");
fprintf(filep, "%d", GPIO9);
fclose(filep); return ;
}

2.GPIO使用总结

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

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

最新文章

  1. 【工业串口和网络软件通讯平台(SuperIO)教程】九.重写通讯接口函数,实现特殊通讯方式
  2. Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现
  3. 解决HDU爆栈的问题
  4. sqlSQL2008如何创建定时作业(代理服务)(转)
  5. COM学习(三)——数据类型
  6. XAML中的Path
  7. DataTable 基本转换简单实例
  8. linux解压命令笔记
  9. PHP之文件的锁定、上传与下载
  10. sim卡中短信简要格式
  11. html一些东东
  12. ES6就是ES2015 的主要内容
  13. Normalize.css源码注释翻译&amp;浏览器css兼容问题的理解
  14. CyclicBarrier和CountDownLatch介绍
  15. 201521123103 《Java学习笔记》 第十一周学习总结
  16. Hibernate学习笔记二
  17. logstash filter 处理json
  18. P1903 [国家集训队]数颜色 / 维护队列(莫队区间询问+单点修改)
  19. nessus的安装
  20. iOS UI进阶-3.0 核心动画

热门文章

  1. C++标准库头文件名字和C语言头文件名字的区别
  2. Traumland--梦乡--IPA--德语
  3. Th&#234;m Một Lần Đau--错错错--IPA--越南语
  4. 1076 Wifi密码
  5. static关键字(修饰函数、局部变量、全局变量)
  6. postman工具测试接口
  7. SDK Manager的使用
  8. tensorflow-learning-where-what-how
  9. python 时间戳转换格式
  10. ChainingHash