在 C++ 中设置 GPIO 的最快方法 (linux)
Fastest way to set GPIO in c++ (linux)
在 C++ 中将 GPIO 设置为“1”或“0”有最快的方法吗?
现在,我们正在使用这个功能:
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需要"time"在C++下设置它。
这个问题的原因是我们使用的嵌入式 linux 板在 SPI 中存在错误。我需要处理 CS(芯片 Select)"manually",此功能需要时间来设置或重置 CS 的 GPIO。
谢谢。
与其每次需要写入时打开和关闭 GPIO,不如在第一次需要写入时(或在启动时)打开一次。然后你将跳过昂贵的操作。 (将此功能包装在 class 中以使其干净。)
同时检查您在写入 GPIO 时没有使用缓冲写入模式。
顺便说一句,请在内核源代码中查看此驱动程序 drivers/spi/spi-gpio.c。这很容易配置以处理 GPIO 上的 SPI 总线。
在 C++ 中将 GPIO 设置为“1”或“0”有最快的方法吗?
现在,我们正在使用这个功能:
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需要"time"在C++下设置它。
这个问题的原因是我们使用的嵌入式 linux 板在 SPI 中存在错误。我需要处理 CS(芯片 Select)"manually",此功能需要时间来设置或重置 CS 的 GPIO。
谢谢。
与其每次需要写入时打开和关闭 GPIO,不如在第一次需要写入时(或在启动时)打开一次。然后你将跳过昂贵的操作。 (将此功能包装在 class 中以使其干净。)
同时检查您在写入 GPIO 时没有使用缓冲写入模式。
顺便说一句,请在内核源代码中查看此驱动程序 drivers/spi/spi-gpio.c。这很容易配置以处理 GPIO 上的 SPI 总线。