加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux gpio c api

发布时间:2020-12-14 02:12:36 所属栏目:Linux 来源:网络整理
导读:我有一个运行3.2内核的powerpc板.使用sysfs访问gpio按预期工作,例如 echo 242 /sys/class/gpio/export cat /sys/class/gpio/gpio242/value 1 是否没有API直接从用户空间访问gpio引脚?我必须处理基于文本的sysfs接口吗? 我找到类似的东西: gpio_set(int no
我有一个运行3.2内核的powerpc板.使用sysfs访问gpio按预期工作,例如

> echo 242 > /sys/class/gpio/export
> cat /sys/class/gpio/gpio242/value
>  1

是否没有API直接从用户空间访问gpio引脚?我必须处理基于文本的sysfs接口吗?

我找到类似的东西:
gpio_set(int no,int val);

谢谢
?克劳斯

解决方法

编辑:不推荐使用对GPIO的sysfs直接访问,新的方法是通过libgpiod进行编程

sysfs是您在最近的内核中操作GPIO的最低级别.它可能有点乏味但它提供了几个优于旧式API的优点:

>没有丑陋的ioctl
>可以很容易编写脚本(想想启动脚本)
>对于输入,“值”文件可以很容易地轮询上升/下降/两个边沿,它将对硬件中断非常敏感

我目前没有示例代码,但是当通过C代码访问它们时,我经常实现一个非常简单的包装器操作文件描述符并具有以下接口的变体:

int gpio_open(int number,int out); /* returns handle (fd) */
int gpio_close(int gpio);
int gpio_set(int gpio,int up);
int gpio_get(int gpio,int *up);
int gpio_poll(int gpio,int rising_edge,int timeout);

从那时起,实现非常简单.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读