泰山派学习2----点灯

2.1 点灯

在这里插入图片描述

  • led设备驱动:

    root@linux:/home/lckfb# ls /sys/class/leds/
    mmc0::  rgb-led-b  rgb-led-g  rgb-led-r
    
  • led相关属性:

    root@linux:/home/lckfb# ls /sys/class/leds/rgb-led-r/
    brightness  device  max_brightness  power  subsystem  trigger  uevent
    
  • trigger:led的工作模式

    • none: 禁用触发器,LED 保持灭。此时可以向brightness写入数据控制led亮灭

      echo "none" > /sys/class/leds/rgb-led-r/trigger
      
    • timer:根据设定的时间间隔触发。切换到此模式后,会多出来两个属性,delay_off:灭灯持续时间;delay_on:亮灯持续时间;

      root@linux:/home/lckfb# ls /sys/class/leds/rgb-led-r/
      brightness  delay_off  delay_on  device  max_brightness  power  subsystem  trigger  uevent
      
      定时模式:写入后切换到默认闪灯状态,500ms亮,500ms灭
      echo "timer" > /sys/class/leds/rgb-led-r/trigger 
      改变亮灯持续时间:亮灯状态持续20s
      echo "20000" > /sys/class/leds/rgb-led-r/delay_on
      改变灭灯持续时间:灭灯状态持续20s
      echo "20000" > /sys/class/leds/rgb-led-r/delay_off
      
    • 其他:不同的触发模式

      root@linux:/home/lckfb# cat /sys/class/leds/rgb-led-r/trigger 
      none rfkill-any rfkill-none kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock mmc2 mmc0 [timer] rfkill0 mmc1 rfkill1 rfkill2 rfkill3 
      
  • 板子默认状态为RGB灯交替显示,可以通过如下指令关闭

    关闭rgb-led-r:
    echo "none" > /sys/class/leds/rgb-led-r/trigger
    关闭rgb-led-g:
    echo "none" > /sys/class/leds/rgb-led-g/trigger
    关闭rgb-led-b:
    echo "none" > /sys/class/leds/rgb-led-b/trigger
    
  • brightness:写0为灭灯,写非0为亮灯,无法调节亮度,仅在trigger为none模式下有效,在trigger为timer模式下,写入数据无效,读取数据有效;任何时候可以通过读取此属性来判断led灯的状态

    rgb-led-r灯亮:以下三条结果一样,无法调节亮度,非零即为亮灯
    echo "1" > /sys/class/leds/rgb-led-r/brightness 
    echo "100" > /sys/class/leds/rgb-led-r/brightness 
    echo "255" > /sys/class/leds/rgb-led-r/brightness 
    rgb-led-r灯灭:
    echo "0" > /sys/class/leds/rgb-led-r/brightness 
    
  • 脚本控制

      #!/bin/bash
      # All led off
      echo "none" > /sys/class/leds/rgb-led-r/trigger
      echo "none" > /sys/class/leds/rgb-led-g/trigger
      echo "none" > /sys/class/leds/rgb-led-b/trigger
      while true; do
              # led on
              echo "1" > /sys/class/leds/rgb-led-r/brightness
              echo "rgb-led-r ON"
              sleep 1s
      
              # led off
              echo "0" > /sys/class/leds/rgb-led-r/brightness
              echo "rgb-led-r OFF"
              sleep 1s
      done
    
  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值