【发布时间】:2016-02-11 02:57:36
【问题描述】:
我想声明一下,我知道 Python 和其他用于在 Raspberry PI 上操作 GPIO 的高级实现。我也一直在使用 WiringPI C API,并且在 Raspbian Jessie 上遇到了问题,即使我没有更改任何代码行,我在 Raspbian Wheezy 上也没有遇到过问题。 WiringPI C API 开发人员还表示,他没有立即支持 Raspbian Jessie 的计划,所以我有点像没有桨的小溪。
出于这个原因,我一直在阅读以下关于使用 sysfs 访问 Raspberry PI GPIO 的教程(以及其他教程),因为这似乎是一种无需使用 WiringPI 且无需编写自己的方式来寻址 GPIO 的方法GPIO 库:
http://www.hertaville.com/introduction-to-accessing-the-raspberry-pis-gpio-in-c.html
根据本教程,要将 GPIO17 设置为输入,请将字符串 'in' 写入文件句柄:
/sys/class/gpio/gpio/17/direction
...然后我可以从以下位置读取 GPIO 输入值:
/sys/class/gpio/gpio17/value
这一切都很好,但我没有选择在我的生产板上重新安装上拉电阻。是否可以使用 sysfs 设置 Raspberry PI 的内置上拉和下拉电阻?
另外,如果无法通过 sysfs 设置上拉和下拉电阻,我是否正确地假设即使在最新的 Raspbian Jessie 中,唯一的另一种方法是直接写入到 GPIO 寄存器?即即使在 Raspbian Jessie 中也没有用于 GPIO 编程的官方 C API?
【问题讨论】:
-
你用 dts 文件启动 linux 吗?如果是这样,您可以编辑以打开/关闭上拉电阻
-
见stackoverflow.com/questions/34058936/… 上拉/下拉由 pinctrl 子系统控制,而不是 GPIO 子系统。
标签: c linux raspberry-pi gpio sysfs