【全志T113-S3_100ask】通过GPIO口点亮RGB灯

【全志T113-S3_100ask】通过GPIO口点亮RGB灯


一、查看是否有/sys/class/gpio这个目录

    首先,查看开发板有没有/sys/class/gpio这个目录,如果没有,则需要重新编译内核。

  在这里插入图片描述
    可以看到,我的开发板这里面是没有这个目录的,所以需要重新编译内核并烧录。

二、重新编译内核

    首先cd到buildroot目录下,对kernel单独进行编译,输入的命令如下:

  make linux-menuconfig

    选项如下:
在这里插入图片描述
    找到Device Drivers->GPIO Support:
在这里插入图片描述
    ->/sys/class/gpio/…(sysfs interface)
在这里插入图片描述
    选中它并保存,退出menuconfig,编译它。
    补充一下buildroot常用操作:

  1、单独编译 uboot
  make uboot-menuconfig
  make uboot-rebuild V=1

  2、单独编译 kernel
  make linux-menuconfig
  make linux-rebuild V=1

  3、单独编译配置busybox
  make  busybox-menuconfig
  清理无效缓存 重新打包
  rm -rf  output/target;    find output/build/ -name .stamp_target_installed | xargs rm ; make

  4、编译sdcard 最小系统镜像
  下面配置一般只需要第一次执行
  make  BR2_EXTERNAL="../br2t113pro ../br2lvgl "  100ask_t113-pro_sdcard_core_defconfig

  uboot、kernel、rootfs 改动都需要执行make V=1
  make  V=1

    编译完便开始烧录,这里略过。
    可以看这篇文章:【全志T113-S3_100ask】3-自动烧录系统脚本

三、/sys/class/gpio目录介绍

    再次cd到刚刚那个文件夹,可以看到刚刚没有的gpio目录已经出现:
  在这里插入图片描述
    gpio目录下各个目录的作用:

文件名 路径 作用
export ./gpio/export 导出GPIO
unexport ./gpio/export 清除导出的GPIO
gpiochipN ./gpio/gpiochipN/base 设备所管理的GPIO初始编号
./gpio/gpiochipN/label 设备信息
./gpio/gpiochipN/ngpio 设备管理的GPIO数
./gpio/gpiochipN/power 设备供电相关信息
./gpio/gpiochipN/subsystem 符号链接,指向父目录
./gpio/gpiochipN/uevent 内核与udev之间的通信接口

    导出GPIO口:

  echo 引脚编号 > export

    首先我们需要计算引脚编号,引脚编号=控制引脚的寄存器基数+控制引脚寄存器位数。
    如我现在RGB中的G接在PE11上,那么它的引脚编号432+11=139,这个432我是这么算来的——E是第五个字母,5减一得4再去乘以32。
    如图所示:
  在这里插入图片描述
    接着,cd进gpio139,ls查看目录,echo向其中的direction输入out,这样就是输出模式了。
    修改direction为out之后,给value它echo一个1,表示输出高电平,RGB灯亮绿色。
    如图所示:
  在这里插入图片描述
  在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/crabxd/article/details/129255965