led 使用
前言
aio-3288j 开发板上有 2 个 led 灯,如下表所示:
led gpio ref. gpio number blue gpio8_a1 257 yellow gpio8_a2 258
可通过使用 led 设备子系统或者直接操作 gpio 控制该 led。
以设备的方式控制 led
标准的 linux 专门为 led 设备定义了 led 子系统。 在 aio-3288j 开发板中的两个 led 均以设备的形式被定义。
用户可以通过 /sys/class/leds/ 目录控制这两个 led。
更详细的说明请参考 leds-class.txt 。
开发板上的 led 的默认状态为:
blue: 系统上电时打开
yellow:用户自定义
用户可以通过 echo 向其 trigger 属性输入命令控制每一个 led:
root@firefly:~ # echo none >/sys/class/leds/firefly:blue:power/trigger root@firefly:~ # echo default-on >/sys/class/leds/firefly:blue:power/trigger
用户还可以使用 cat 命令获取 trigger 的可用值:
root@firefly:~ # cat /sys/class/leds/firefly:blue:power/trigger none [ir-power-click] test_ac-online test_battery-charging-or-full test_battery-charging test_battery-full test_battery-charging-blink-full-solid test_usb-online mmc0 mmc1 mmc2 backlight default-on rfkill0 rfkill1 rfkill2
在内核中操作 led
在内核中操作 led 的步骤如下:
1、在 dts 文件中定义 led 节点“leds” 在 kernel/arch/arm/boot/dts/firefly-rk3288-aio-3288j.dts 文件中定义led节点,具体定义如下:
leds { compatible = gpio-leds; power { label = firefly:blue:power; linux,default-trigger = ir-power-click; default-state = on; gpios = ; }; user { label = firefly:yellow:user; linux,default-trigger = ir-user-click; default-state = off; gpios = ; }; };
注意:compatible 的值要跟 drivers/leds/leds-gpio.c 中的 .compatible 的值要保持一致。
2、在驱动文件包含头文件
#include
3、在驱动文件中控制 led。
(1)、定义 led 触发器
define_led_trigger(ledtrig_ir_click);
(2)、注册该触发器
led_trigger_register_simple(ir-power-click, &ledtrig_ir_click);
(3)、控制 led 的亮灭。
led_trigger_event(ledtrig_ir_click, led_full); //亮 led_trigger_event(ledtrig_ir_click, led_off); //灭
工地扬尘防控设备在线扬尘监测设备
恒讯科技带大家深入理解:WebSocket服务器的工作原理
微电子技术应用实例及应用领域分析
“预见”6G新未来:通感一体化—传递信息无数,感知万事万物
pcb油墨特性
fireflyAIO-3288J主板LED介绍
基于FPGA与ARM进行遥测数据网络转发的流程剖析
中国敦促英国不要在5G建设方面歧视华为 抵制他国的压力
未来教育发展趋势是怎样的
红外线光电开关的原理_红外线光电开关分类
压差小的肖特基二极管有哪些?
低功耗无线模块超远距离无线传输实现中继的方法
Flyme 8很快就会与我们见面,它又有哪些亮点呢?
德国5G频谱拍卖结束 总收益65亿欧元
一文盘点孙正义背后的“自动驾驶帝国”
微软开始测试音量窗口新功能 将提供精细化多媒体控制
为适应数字隔离器传播延迟 CAN节点位时序大升级
2020年款PS5 Pro曝光在浮点运算方面可以和Xbox Series X抗衡
努比亚X双屏怎么样 打造了许许多多与众不同的新玩法
索尼松下三洋垄断锂电池价格遭巨额罚款,三星告密SDI免罚