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=; 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的值,就是更改不了其值。
GPIO引脚操作的更多相关文章
- Linux 内核层和 用户层 配置 GPIO 引脚
Linux BSP 开发的基础就是和GPIO打交道, 下面总结下这几天对某家开发板的GPIO控制的知识. 公司的开发板用的是 DTB 模式 ,首先,进入 dts,dtsi文件查看关于GPIO 的模块 ...
- 树莓派 Learning 003 --- GPIO 000 --- GPIO引脚图
树莓派 Learning 003 - GPIO 000 - GPIO引脚图 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 Raspberr ...
- 全志R58平台的GPIO引脚控制
全志R58平台的GPIO引脚控制 2017/8/18 15:50 版本:V1.0 开发板:SC5806(全志R58平台) SDK:android4.4.4 本文以GPIO引脚PD24为例,在开发板的背 ...
- GPIO引脚速度的应用匹配
GPIO 引脚速度: GPIO 引脚速度又称输出驱动电路的响应速度:(芯片内部在I/O口的输出部分安排了多个响应速度不同的输出驱动电路,用户可以根据自己的需要选择合适的驱动电路,通过选择速度来选择不同 ...
- [IOT] - 使用 .Net Core 操作 GPIO 引脚点亮 LED 灯泡
1. 在 VS 2019 中创建 .Net Core 控制台应用程序,使用 Nuget 安装程序包: System.Device.GpioIot.Device.Bindings 2. 更新 Main ...
- TI CC2541的GPIO引脚设置.
P1SEL寄存器, 0xF4, 功能选择用的, 0表示GPIO口, 1表示外设.
- 树莓派GPIO引脚标识图
- 十三、GPIO子系统
由于之后的触摸屏驱动分析中使用到了GPIO子系统和i2c子系统,因此在分析触摸屏驱动之前我准备把这两个子系统进行简单分析. 之前我们使用GPIO引脚的方式并不是推荐的方式,当我们更改某一bit时,很有 ...
- 通过数组和枚举简化GPIO操作编码
在工作中,经常遇到大量使用GPIO作为数字量输入输出来控制设备或采集状态,每次定义操作不同的GPIO针脚既麻烦又容易出错,于是就想要简化操作过程.对于数字量输入来说就是采集对应针脚的状态:而输出则是根 ...
随机推荐
- X86汇编语言实现的贪吃蛇游戏
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- Cracking The Coding Interview 9.7
//原文: // // A circus is designing a tower routine consisting of people standing atop one another's s ...
- 2.12 C++ explicit关键字详解
参考:http://www.cnblogs.com/ymy124/p/3632634.html 总结: 带参数的构造函数中有两种比较常见的构造函数:拷贝构造函数和转型构造函数. 转型构造函数只有一个参 ...
- python列表、集合、元祖、字典推导式
a = [1, 2, 3, 4, 5, 6, 7, 8]l=[i**2 for i in a if i**2>=16] #列表推导式+if判断print(l)print(type(l)) b={ ...
- confirm消息对话框
function rec(){ var mymessage= confirm("你是女孩?") ; if(mymessage==true) { document.write(&qu ...
- centos中PATH环境变量查看和修改
PAHT环境变量 :定义的是系统搜索命令的路径.<就是自己写的程序不打绝对路径就可以执行,必须放到 $PATH这个文件中>查看命令:echo $PATH 以添加mongodb server ...
- JDK的下载及配置
下载地址,为了兼容最好安装1.8版本 jdk1.8:http://jbox.jd.com/quickshare/d2wheyazjtdccshou2dbo24roejdk1.7:http://jbox ...
- easyui再学习的一部分代码
<%-- Created by IntelliJ IDEA. User: zhen Date: // Time: : To change this template use File | Set ...
- FindResource () RT_HTML 为什么总是出错呢 ?
#include <windows.h> #include <commdlg.h> #include <ole2.h> BOOL GetHtmlResource(L ...
- SharePoint online Multilingual support - Settings
博客地址:http://blog.csdn.net/FoxDave This post will talk about how to enable sharepoint online site mul ...