Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

linux gpio操作

作者:狂刀血斧   发布日期:2026-07-22   浏览:108

#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/gpio.h>

#define GPIO_PATH "/dev/gpiochip0"
#define GPIO_LINE 17

int main() {
    int fd;
    struct gpiohandle_request req;

    // 打开GPIO设备
    fd = open(GPIO_PATH, O_RDWR);
    if (fd < 0) {
        perror("Failed to open GPIO device");
        return -1;
    }

    // 配置GPIO引脚
    req.lineoffsets[0] = GPIO_LINE;
    req.flags = GPIOHANDLE_REQUEST_OUTPUT;
    req.lines = 1;
    strncpy(req.consumer_label, "example", sizeof(req.consumer_label) - 1);

    if (ioctl(fd, GPIO_GET_LINEHANDLE_IOCTL, &req) < 0) {
        perror("Failed to get line handle");
        close(fd);
        return -1;
    }

    // 设置GPIO输出电平
    struct gpioline_handle_data data;
    data.values[0] = 1; // 设置为高电平
    if (ioctl(req.fd, GPIOHANDLE_SET_LINE_VALUES_IOCTL, &data) < 0) {
        perror("Failed to set line value");
        close(req.fd);
        close(fd);
        return -1;
    }

    printf("GPIO line %d set to high\n", GPIO_LINE);

    // 关闭文件描述符
    close(req.fd);
    close(fd);

    return 0;
}

解释说明:

  1. 打开GPIO设备:通过open()函数打开/dev/gpiochip0设备,获取文件描述符fd
  2. 配置GPIO引脚:使用struct gpiohandle_request结构体来配置GPIO引脚。这里我们将GPIO线17配置为输出模式。
  3. 设置GPIO输出电平:通过ioctl()调用GPIOHANDLE_SET_LINE_VALUES_IOCTL命令来设置GPIO引脚的输出电平(高电平)。
  4. 关闭文件描述符:操作完成后,关闭所有打开的文件描述符。

这个示例代码展示了如何在Linux系统中通过字符设备接口操作GPIO引脚。

上一篇:linux查询公网ip

下一篇:linux sed 替换

大家都在看

linux如何启动nginx

linux常用命令查询端口是否正常

linux 发送邮件

linux长ping命令

linux groupadd

linux关机命令行

linux 安装 gcc

linux重启oracle命令

linux把一个文件夹移动到另一个文件夹里

linux删除docker

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站