完美体育·(中国)手机网页版科技提醒您:您的浏览器版本过低或者使用了兼容模式,为了获得更好的浏览体验,建议使用IE10以上的浏览器或使用极速模式。 请升级浏览器以获得更好的体验!

完美体育·(中国)手机网页版 > 评测报告 > 【完美体育·(中国)手机网页版MYD-JX8MPQ开发板】通过sysfs文件系统操作GPIO

【完美体育·(中国)手机网页版MYD-JX8MPQ开发板】通过sysfs文件系统操作GPIO

文章来源: 发布日期:2022.11.21 浏览次数:1508 次


本篇测评由电子发烧友的优秀测评者“马猛 ”提供。
此次的板卡测试,是完美体育·(中国)手机网页版MYD-JX8MPQ开发板通过sysfs文件系统操作GPIO



Sysfs文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。
(一))文件系统 gpio 操作

   在应用层通过Sysfs访问Gpio子系统,首先需要操作接口,先进入/sys/class/目录,看看系统中有没有“/sys/class/gpio”这个文件夹。Linux系统的sysfs机制已经在系统路径下/sys/class/gpio注册了相应的节点,通过读写该节点下的文件就能轻松的完成GPIO输入输出配置以及引脚状态的获取。
  输入指令:

  1. ls -F /sys/class




查看GPIO引脚



  1. root@myd-jx8mp:/sys/class/gpio# ls
  2. export  gpio124  gpiochip0  gpiochip128  gpiochip32  gpiochip496  gpiochip64  gpiochip96  unexport
  3. root@myd-jx8mp:/sys/class/gpio#


cd 进入gpio124目录, ls 查看一下,会出现几个操作符,如下:


  1. root@myd-jx8mp:/sys/class/gpio/gpio124# ls
  2. active_low  consumers  device  edge  power  subsystem  suppliers  uevent  value




  1. 导出 GPIO
  2. root@myd-jx8mp:~# echo 139 > /sys/class/gpio/export
  3. 导出成功后会在/sys/class/gpio/目录下生成 gpio139 这个目录。
  4. 设置/查看 GPIO 方向
  5. 设置输出,输入以下命令:
  6. root@myd-jx8mp:~# echo out > /sys/class/gpio/gpio139/direction
  7. 或者设置输入:
  8. root@myd-jx8mp:~# echo in > /sys/class/gpio/gpio139/direction
  9. 查看 gpio 方向:
  10. root@myd-jx8mp:~# cat /sys/class/gpio/gpio139/direction
  11. out
  12. 返回 in 表示输入,返回 out 表示输出。
  13. 设置/查看 GPIO 的值
  14. 设置输出低:
  15. root@myd-jx8mp:~# echo "0" > /sys/class/gpio/gpio139/value
  16. 或者设置输出高:
  17. root@myd-jx8mp:~# echo "1" > /sys/class/gpio/gpio139/value
  18. 查看 gpio 的值:
  19. root@myd-jx8mp:~# cat /sys/class/gpio/gpio139/value
  20. 1
  21. 可以看到 GPIO5_IO11 输出高电平, 然后可以用万用表测量 J25 扩展 IO 的
  22. ECSPI2_MOSI_3V3 引脚,可以看到电压为 3.3V 左右



(二)Uboot 下操作 GPIO
进入 uboot 模式开机按任意键进入 uboot 模式:
MYD-JX8MP 开发板的 GPIO 脚是以 GPIOX_Y 形式来定义的,由于 GPIOX_Y 转换成引脚编号公式为:(X-1) *32+Y,所以 GPIO5_IO11 编号为:(5-1) *32+11=139。
通过 uboot 设置 GPIO5_IO11 电压:



  1. u-boot=> gpio set 139
  2. gpio: pin 139 (gpio 139) value is 1
  3. u-boot=> gpio clear 139
  4. gpio: pin 139 (gpio 139) value is 0
复制代码




debugfs
debugfs 是 Linux系统下为了方便驱动开发人员对驱动调试的文件系统,可以通过debugfs查看gpio-120硬件上的实际输出和软件上是否相符合;


  1. $ cat /sys/kernel/debug/gpio