【NanoPi NEO2 开发板试用体验】NEO2 通过sysfs访问GPIO

  • QiaoJiannan
  • LV3工程师
  • |      2017-06-30 14:42:19
  • 浏览量 948
  • 回复:0
之前发过有通过WiringNP的方式来访问GPIO,WiringNP是我用过最好的方式,但其实派还有一种GPIO的访问方式,那就是sysfs。完整手册请参考https://linux-sunxi.org/GPIO,这里只给出简要的翻译。 无需下载任何安装包,sysfs完全利用系统内核来操作GPIO。首先,需要了解GPIO的编号,请看下图: 其中Name列给出了GPIO的名称,如A12、A11、G11等,GPIO在系统里的编号是 (字母顺序 - A)x 32+数字,例如 A12 = (A-A) x 32 + 12 = 12 G11 = (G-A) x 32 + 11 = 6 x 32 + 11= 203 也就是BCM编号。接下来操作就简单了,一共需要三步 echo 编号 > /sys/class/gpio/export 写状态 echo out > /sys/class/gpio/gpio编号/direction echo 0/1 > /sys/class/gpio/gpio编号/value 读状态 echo in > /sys/class/gpio/gpio编号/direction more /sys/class/gpio/gpio编号/value 举例,比如203这个端口,如果作为输出就是 echo 203 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio203/direction echo 1 > /sys/class/gpio/gpio203/value 作为输入就是 echo 203 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio203/direction (这一步有可能会失败,没关系,默认就是in方向) more /sys/class/gpio/gpio203/value 由于/sys目录就是文件系统中的文件,所以,程序中可以用任何语言直接操作即可,但必须使用root权限。这种方法不局限于任何安装镜像,Debian、Ubuntu都适用,而且对内核版本没要求,如果WiringNP安装失败的话,试试这种方法吧。
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子