0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何实现Linux下的LED驱动

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者:Vincent 2023-09-27 11:03 次阅读

LED驱动

我们以imx6ull pro开发板的板载led为例,其板载了一个可控制的Led2,原理图如下:

图片

LED2进行上拉电阻,另外一个管脚接到了GPIO5_3,因此GPIO5_3输出低电平即可点亮LED。下面说明如何控制该LED。

内核配置:

Device Drivers  --- >
  [*] LED Support  --- >
   < * >   LED Class Support
   < * >   LED Support for GPIO connected LEDs
   [*]   LED Trigger support  --- >

我们的LED驱动是基于GPIO的,因此需要打开内核LED驱动的支持。

内核有两个对应的驱动程序,分别是GPIO驱动LED驱动基于GPIO的LED驱动调用了GPIO驱动导出的函数

LED驱动实现代码请参考:drivers/leds/leds-gpio.c,它实现了一个leds类,通过sysfs接口对LED进行控制。

设备树:

leds{
 compatible = "gpio-leds";
 
        led2{
            label = "led2";
            gpios = < &gpio5 3 GPIO_ACTIVE_LOW >;//GPIO_ACTIVE_LOW,代表低电平点亮LED
            default-state = "on";
        };
}

在设备树中创建一个名为leds的节点,compatible"gpio-leds",这样可以匹配到leds-gpio.c的驱动。

然后创建一个子节点,名为led2。需要填三个属性:labelgpiosdefault-state

label :lable是出现在sys目录下的名字,即生成/sys/class/leds/led2

gpios :前两个值指定了该LED所连接的GPIO。第三个值可填GPIO_ACTIVE_HIGHGPIO_ACTIVE_LOWGPIO_ACTIVE_HIGH代表高电平点亮LED,GPIO_ACTIVE_LOW代表低电平点亮LED。

这里注意了,gpios属性的第三个参数,代表该gpio点亮LED是需要高电平还是低电平,注意是点亮LED,细品

default-state :on代表默认情况LED是点亮的,off代表默认LED熄灭

这里又注意了,当defalut-state为on时,实际上gpio输出的电平,就是gpios属性中指定的点亮LED时的电平

设备树配置好后,编译并更换dtb,然后重启开发板。可以看到/sys/class/leds/led2目录:

图片

/sys/class/leds/led2/目录下有一个brightnes文件,可以通过echo``cat的方式查看和修改LED的亮度。因为LED连接在GPIO上,所以亮度只有0和1,在本文示例的led2中,0表示点亮,1表示熄灭。

点亮LED:

echo 0 > /sys/class/leds/led2/brightness

熄灭LED:

echo 1 > /sys/class/leds/led2/brightness
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23252

    浏览量

    660574
  • 驱动
    +关注

    关注

    12

    文章

    1838

    浏览量

    85262
  • Linux
    +关注

    关注

    87

    文章

    11292

    浏览量

    209329
  • 开发板
    +关注

    关注

    25

    文章

    5032

    浏览量

    97373
收藏 人收藏

    评论

    相关推荐

    linux驱动编写:从hello world到 LED驱动

    linux驱动是连接软件和硬件的一个中间介质,实现了对硬件的配置和控制。进一步将硬件抽象化,为软件操作硬件提供了简单的接口。不论硬件的具体形式如何,linux
    的头像 发表于 11-29 10:28 2750次阅读
    <b class='flag-5'>linux</b><b class='flag-5'>驱动</b>编写:从hello world到 <b class='flag-5'>LED</b><b class='flag-5'>驱动</b>

    嵌入式LinuxLED报警灯驱动设计

    嵌入式LinuxLED报警灯驱动设计及编程《嵌入式Linux
    发表于 11-04 08:18

    LinuxLED驱动原理

    41.1 Linux LED驱动原理Linux 的任何外设
    发表于 12-15 09:11

    Linux驱动的使用

    图片的保存4、浏览功能的实现三、视频监控代码分析1、实时监控2、抓拍图片3、浏览四、家电控制1、家电控制内容2、LED控制方法3、Linux驱动
    发表于 02-16 07:19

    LINUX的CAN驱动

    LINUX的CAN驱动:/* * Microchip MCP2515 CAN controller driver. * * Copyright (C
    发表于 08-23 11:56 21次下载

    Linux环境USB的原理、驱动和配置

    本文对 Linux 环境USB 的原理、驱动和配置进行详细介绍。随着生活水平的提高,人们对 USB 设备的使用也越来越多,鉴于Linux 在硬件配置上尚不能全部即插即用,因此关于
    发表于 01-16 16:57 33次下载

    嵌入式LinuxPCSC驱动的设计与实现

    本文分析了PCSC驱动的体系结构,针对嵌入式Linux平台的基本特征,设计并实现了一个基于嵌入式Linux的PCSC驱动程序,
    发表于 02-24 11:23 46次下载

    Linux语音实时通信实现

    在设计嵌入式语音通信系统的过程中,提出了一种Linux 语音实时通信方法。利用Linux OSS 内核驱动
    发表于 05-12 16:34 51次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>下</b>语音实时通信<b class='flag-5'>实现</b>

    Linux的网络HOOK实现

    最近疯狂的研究Linux的种种功能,也颇有心得,这里讲述一Linux的Net的Hook,使用net的Hook可以实现很多很多非常底层的功
    发表于 05-14 10:27 5134次阅读

    如何编写Linux Nand Flash驱动

    如何编写Linux Nand Flash驱动
    发表于 10-30 08:36 15次下载
    如何编写<b class='flag-5'>Linux</b> <b class='flag-5'>下</b>Nand Flash<b class='flag-5'>驱动</b>

    基于Linux的LCD驱动程序实现

    基于Linux的LCD驱动程序实现
    发表于 10-30 16:45 12次下载
    基于<b class='flag-5'>Linux</b><b class='flag-5'>下</b>的LCD<b class='flag-5'>驱动</b>程序<b class='flag-5'>实现</b>

    ADP8870背光LED Linux驱动

    ADP8870背光LED Linux驱动
    发表于 04-20 17:25 2次下载
    ADP8870背光<b class='flag-5'>LED</b> <b class='flag-5'>Linux</b><b class='flag-5'>驱动</b>器

    ADP1650 LED Linux驱动

    ADP1650 LED Linux驱动
    发表于 04-20 20:30 2次下载
    ADP1650 <b class='flag-5'>LED</b> <b class='flag-5'>Linux</b><b class='flag-5'>驱动</b>器

    ADP8860背光LED Linux驱动

    ADP8860背光LED Linux驱动
    发表于 05-17 09:13 13次下载
    ADP8860背光<b class='flag-5'>LED</b> <b class='flag-5'>Linux</b><b class='flag-5'>驱动</b>器

    嵌入式linux报警,嵌入式LinuxLED报警灯驱动设计及编程.doc

    嵌入式LinuxLED报警灯驱动设计及编程《嵌入式Linux
    发表于 11-01 17:21 6次下载
    嵌入式<b class='flag-5'>linux</b>报警,嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>下</b><b class='flag-5'>LED</b>报警灯<b class='flag-5'>驱动</b>设计及编程.doc