在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);
}
Run Code Online (Sandbox Code Playgroud)
使用这个函数,CPU在C++下需要“时间”来设置它。
这个问题的原因是我们使用的嵌入式 Linux 板在 SPI 中存在错误。我需要“手动”处理 CS(片选),并且此功能需要时间来设置或重置 CS 的 GPIO。
谢谢。
无需在每次需要写入时打开和关闭 GPIO,只需在第一次需要写入时(或在启动时)打开一次即可。那么你将跳过昂贵的操作。(将此功能包装在一个类中以使其干净。)
另请检查在写入 GPIO 时是否使用缓冲写入模式。
| 归档时间: |
|
| 查看次数: |
3128 次 |
| 最近记录: |