我有一个 RPi 5,我需要进行一些 GPIO 编程。我读到过,以前的 RPi 型号以及早期版本的 Raspbian OS 中使用的所有(大多数)GPIO 库现在均已弃用。我听说在“大淘汰”中幸存下来的 GPIO 库被称为
libgpio
或 libgpiod
(不确定有什么区别)。
我在RPi论坛上看到一个帖子,其中有一个C语言的示例程序据说已经编译并成功运行。但是,我无法让它工作,所以我在这里发帖寻求帮助。
我的 C 编程技能几乎不存在,但如果我坚持不懈,我通常会设法让一些东西发挥作用。这是我尝试过的:
sudo update
sudo apt install gpiod libgpiod-dev libgpiod-doc
cd blinky_c # blinky.c is in blinky_c
gcc -o blinky -libgpiod blinky.c
blinky.c:3:10: fatal error: lgpio.h: No such file or directory
3 | #include "lgpio.h"
| ^~~~~~~~~
我在
lgpio.h
或 libgpio(d).h
中都找不到 /usr/include/linux
或 /usr/include
。
blinky.c
:
#include <stdio.h>
#include <stdlib.h>
#include "lgpio.h"
int h,i;
int main(void) {
h = lgGpiochipOpen(4);
lgGpioClaimOutput(h,0,17,0);
while(1)
{
lgGpioWrite(h,17,0);
lguSleep(1);
lgGpioWrite(h,17,1);
lguSleep(1);
}
return EXIT_SUCCESS;
}
如何获取
lgpio.h
头文件,以及应该在哪里以及如何安装它?这实际上是我需要的头文件吗?
查看库的源代码,唯一的 .h 文件是
gpiod.h
。这应该已经安装到/usr/include/gpiod.h,所以你应该能够通过访问它
#include <gpiod.h>
如有疑问,请在终端上运行
whereis file.h
,只要文件安装正确,您就会找到它。