【Firefly-RK3399 试用体验】06-点个灯
本帖最后由 F_Developer_X 于 2017-8-21 16:36 编辑一、简介
在嵌入式Linux中,LED接口非常普遍,但由于它的特殊性,LED接口的使用和标准的Linux接口存在较大的差异。对于(Firefly-RK3399),LED操作接口位于/sys/class/leds目录下。
http://b01.ickimg.com/201706/3da690849a74dfd9195b7004ba0a8f7c.png
此目录下包含了关LEF操作的目录,其中包含了Firefly-RK3399板子上的两颗LED灯,分别是firefly:blue:power和firefly:yellow:user,从命名上可以很容易看出,蓝色的LED用于电源指示,黄色的LED默认是用户自定义的。
http://b01.ickimg.com/201706/00c60d5c136c631de51fe02bc9a9cca5.png
查看下官方的原理图,两颗LED都是高电平驱动。
http://b01.ickimg.com/201706/cc98b056b243e7dcbab41e72f42f2063.png
二、LED的操作接口
以firefly:blue:power为例,进入该目录,该目录有以下内容:
http://b01.ickimg.com/201706/6a80d499e1b1f0bf09d85ec51dfaaa2b.png
firefly:blue:power目录下主要文件的作用介绍如下表所示。
http://b01.ickimg.com/201706/d224645421f09ab5ecb7b096397e45fd.png
所以,要点亮或者关闭LED,只需要在对应的LED的目录下,往brightness写入1或0即可。如下图所示,首先查看trigger文件,确认LED处于“none”模式,可以被用户控制,然后切换至管理员模式,只有管理员有权限操作LED。通过ehco 0 > brightness命令可以控制LED熄灭。
http://b01.ickimg.com/201706/fc4df46239e41046d0fe29012fb6ba29.png
三、C语言实现LED闪烁
C语言中操作LED就和读写文件是一样的,也是先设置trigger属性,再操作brightness属性。代码如下:
http://b01.ickimg.com/201706/48f145b3ece354280eb3b5c021df0b94.png
将代码复制到firefly-rk3399中,使用gcc进行编译,得到可执行文件。
http://b01.ickimg.com/201706/5c9b9138545257298a8ce8c502554772.png
执行LED可执行文件的时候,将要操作的LED灯的名字作为参数输入,即可实现该LED的闪烁。
http://b01.ickimg.com/201706/1ee6c04d5fd98ace59b54015c36959a7.png
四、结果
http://b01.ickimg.com/201706/3272dde3b2dc25c27f67418ccc3fcbd7.jpg
顶一下楼主! 可以在串口中断点亮LED,但是用C语言实现有问题啊:在宿主机上ubuntu14.04中用交叉编译工具编译好,下载到firefly-rk3399执行是显示 没有权限?我是超级用户模式的啊?? 请问这个程序是开发板的那个系统下,或者什么环境下运行的?
你好,方便加个微信吗?348460102,请教个问题,非常感谢 诶?
不是写个python
echo 1 > /sys/class/leds/firefly\:yellow\:user/brightness
echo 0 > /sys/class/leds/firefly\:yellow\:user/brightness
不就 OJBK 了? 我的应用与楼主有点不同,我是在Recovery中需要闪烁LED灯,感觉楼主说得很清楚,感谢 学习 jidan 发表于 2018-10-30 16:04
可以在串口中断点亮LED,但是用C语言实现有问题啊:在宿主机上ubuntu14.04中用交叉编译工具编译好,下载到f ...
没记错的话好象是下载到开发板上的文件要用 chmod 给个可执行权限。 good
页:
[1]
2