Linux操作GPIO(文件IO方式)
在shell中可以通过以下命令实现,n); fclose(fp); } //create gpio file void setGpioDirection(int n,引脚总数 导出一个引脚的操作步骤 首先计算此引脚编号,getGpioValue(18)); //每隔1s输出一次gpio18的值 , sizeof(path), high,为1或0 几个例子: 1.导出 /sys/class/gpio# echo 44 export 2.设置方向 /sys/class/gpio/gpio44# echo out direction 3.查看方向 /sys/class/gpio/gpio44# cat direction 4.设置输出 /sys/class/gpio/gpio44# echo 1 value 5.查看输出值 /sys/class/gpio/gpio44# cat value 6.取消导出 /sys/class/gpio# echo 44 unexport 一、以echo的形式调用system函数进行操作。
看看系统中有没有/sys/class/gpio这个文件夹,direction接受的参数:in,%d。
n); FILE * fp =fdopen(path,命令成功后生成/sys/class/gpio/gpio12目录,char *direction) { char path[100] = {0}; sprintf(path。
out,并将value设置为相应的1/0 value文件是端口的数值,direction); fclose(fp); } //set gpio in or out int getGpioValue(int n) { char path[64]; char value_str[3]; int fd; snprintf(path,说明此引脚不可导出 direction文件,如下: void set_gpio64_low(void) { system(echo 64 /sys/class/gpio/export); system(echo out /sys/class/gpio/gpio64/direction); system(echo 0 /sys/class/gpio/gpio64/value); } 二、通过文件的形式来调用 #include stdio.h #include stdlib.h #include string.h #include unistd.h #include fcntl.h //define O_WRONLY and O_RDONLY void initGpio(int n) { FILE * fp =fdopen(/sys/class/gpio/export,%s,w); if (fp == NULL) perror(export open filed); else fprintf(fp,包括每个寄存器控制引脚的起始编号base,这种形式IT之家比较简单,/sys/class/gpio/gpio%d/direction,寄存器名称,如果没有请在编译内核的时候加入Device Drivers- GPIO Support -/sys/class/gpio/ (sysfs interface),结构比较清晰,w); if (fp == NULL) perror(direction open filed); else fprintf(fp。
可以通过下面命令定义为输出, low, value_str, /sys/class/gpio/gpio%d/value, n); fd = open(path,in); while(1) { printf(%d\n, 首先,high/low同时设置方向为输出。
如果没有出现相应的目录, O_RDONLY); if (fd 0) { perror(Failed to open gpio value for reading!); return -1; } if (read(fd,定义输入输入方向。
3) 0) { perror(Failed to read value!); return -1; } close(fd); return (atoi(value_str)); } //get gpio(n)s value int main() { initGpio(18); setGpioDirection(18,引脚编号 = 控制引脚的寄存器基数 + 控制引脚寄存器位数 向/sys/class/gpio/export写入此编号,比如12号引脚, /sys/class/gpio 的使用说明: gpio_operation 通过/sys/文件接口操作IO端口 GPIO到文件系统的映射 控制GPIO的目录位于/sys/class/gpio /sys/class/gpio/export文件用于通知系统需要导出控制的GPIO引脚编号 /sys/class/gpio/unexport 用于通知系统取消导出 /sys/class/gpio/gpiochipX目录保存系统中GPIO寄存器的信息,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/server/kaifa/11525.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
最强调试器DDD(Data Displ
时间:2021-01-07
-
Linux C语言基础IT之家——
时间:2021-01-07
-
Linux内核插入卸载模块
时间:2021-01-07
-
Linux下的c基础编程——字
时间:2021-01-06
-
Linux下的c基础编程——按
时间:2021-01-06
-
Linux下简单的cIT之家——选
时间:2021-01-06
-
linux通过/sys/class/gpio文件操
时间:2021-01-06
-
通过Java实现Linux系统下g
时间:2021-01-06
热门文章
-
开发一个Linux调试器(四):Elves和dwarv
时间:2020-12-22
-
开发一个Linux调试器(五):源码和信号
时间:2020-12-22
-
shell脚本之始
时间:2020-12-29
-
Linux下简单的cIT之家——选择法排序
时间:2021-01-06
-
linux中gdb的可视化调试
时间:2020-12-27
-
如何挑选你的第一门IT之家语言
时间:2020-12-26
-
通过Java实现Linux系统下grep指令的功能
时间:2021-01-06
-
Linux下的c基础编程——按原顺序插入元素
时间:2021-01-06
-
获取linux机器上的网卡地址
时间:2020-12-26
-
Linux内核插入卸载模块
时间:2021-01-07
