C/C++ GPIO开发¶
Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.
本文档说明 Quectel Pi M1/L1 上使用 C/C++ 访问 GPIO 的推荐方式。当前开发板已验证可使用 libgpiod v1.6.3,默认推荐 libgpiod 路径。
环境准备¶
sudo apt update
sudo apt install -y build-essential gpiod libgpiod-dev
gpiodetect --version
gpiodetect
项目 |
说明 |
|---|---|
推荐库 |
libgpiod |
编译参数 |
|
主控制器 |
当前验证为 |
读取示例¶
#include <gpiod.h>
#include <stdio.h>
int main(void)
{
struct gpiod_chip *chip = gpiod_chip_open_by_name("gpiochip0");
struct gpiod_line *line = gpiod_chip_get_line(chip, 36);
gpiod_line_request_input(line, "m1-gpio-input");
printf("value=%d\n", gpiod_line_get_value(line));
gpiod_line_release(line);
gpiod_chip_close(chip);
return 0;
}
gcc -Wall -o gpio_input gpio_input.c -lgpiod
sudo ./gpio_input
输出示例¶
#include <gpiod.h>
#include <unistd.h>
int main(void)
{
struct gpiod_chip *chip = gpiod_chip_open_by_name("gpiochip0");
struct gpiod_line *line = gpiod_chip_get_line(chip, 36);
gpiod_line_request_output(line, "m1-gpio-output", 1);
sleep(1);
gpiod_line_set_value(line, 0);
gpiod_line_release(line);
gpiod_chip_close(chip);
return 0;
}
gcc -Wall -o gpio_output gpio_output.c -lgpiod
sudo ./gpio_output
注意事项¶
实际 line offset 需结合开发板引脚定义确认。
运行失败时先用
gpioinfo /dev/gpiochip0检查线路是否被占用。若编译提示找不到
gpiod.h,确认已安装libgpiod-dev。