c++ - 在 C++ (linux) 中设置 GPIO 的最快方法

标签 c++ linux gpio

有没有最快的方法在c++中将“1”或“0”设置为GPIO?

现在,我们正在使用这个函数:

void gpioSet(int gpio, int value)
{
    sprintf(buf, "/sys/class/gpio/gpio%d/value", gpio);
    fd = open(buf, O_WRONLY);
    sprintf(buf, "%d", value);
    write(fd, buf, 1);
    close(fd);
}

使用此函数,CPU 在 C++ 下需要“时间”来设置它。

这个问题的原因是我们使用的嵌入式 Linux 板在 SPI 中存在错误。我需要“手动”处理 CS(片选),并且此功能需要时间来设置或重置 CS 的 GPIO。

谢谢。

最佳答案

不必在每次需要写入时打开和关闭 GPIO,只需在第一次需要写入时(或在启动时)打开一次即可。那么你将跳过昂贵的操作。 (将此功能包装在一个类中以使其简洁。)

还要检查在写入 GPIO 时是否使用缓冲写入模式。

关于c++ - 在 C++ (linux) 中设置 GPIO 的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42146948/

相关文章:

Docker 访问 Raspberry Pi GPIO 引脚

linux - 如何在没有忙循环的情况下通过 Linux 上的 GPIO 获取边缘事件?

c++ - 文件系统 directory_iterator 不返回完整文件路径

c++ - C++ 中的指针和 const

java - 错误 : Could not find or load main class - Java cygwin

c - 如果一个应用程序打开多个到 syslog 的连接会怎样?

python - Raspberry Pi 中断 Python(GPIO 库)

c++ - 为什么我手动调整的、启用 SSE 的代码这么慢?

c++ - 无法让 BOOST odeint 与 Adams-Bashforth-Moulton 一起工作

linux - 编写一个脚本来删除 Linux 中不同文件夹中存在的文件