1 回答

TA貢獻1828條經(jīng)驗 獲得超3個贊
在Linux上,GPIO接口通過層次結構中的文件系統(tǒng)導出,因此在shell示例中,您只需要將數(shù)據(jù)寫入這些文件,如下所示:sys/sys/class/gpio
// To export pin 48 (same as echo 48 > /sys/class/gpio/export)
ioutil.WriteFile("/sys/class/gpio/export", []byte("48"), 0666)
...
根據(jù)您的平臺和需求,您可能需要考慮一些預先存在的軟件包(例如,樹莓派或periph
的go-rpio
,它更通用,支持比GPIO更多)。
如果你想要比寫入文件更有效/更快的解決方案,你也可以考慮內(nèi)存映射GPIO訪問,你基本上通過內(nèi)核給出的內(nèi)存范圍直接訪問GPIO外圍。這需要對目標平臺有更深入的了解(了解其GPIO寄存器及其映射)。您可以在這篇博客文章中詳細閱讀有關該方法的信息。sysfs
編輯:正如@0andriy在他的評論中指出的那樣,已被棄用。這適用于你上面的Bash示例和我的答案如何在Go中做同樣的事情。取而代之的是引入了一個新的ABI,并與之交互。https://github.com/warthog618/gpiod,這里提供前往港口。gpio
syssfs
- 1 回答
- 0 關注
- 133 瀏覽
添加回答
舉報