一、测试环境:Android 9 系统

二、驱动文件在\kernel\drivers\leds\leds-gpio.c

三、dts的官方配置文档 kernel\Documentation\devicetree\bindings\leds\leds-gpio.txt

LEDs connected to GPIO linesRequired properties:
- compatible : should be "gpio-leds".Each LED is represented as a sub-node of the gpio-leds device.  Each
node's name represents the name of the corresponding LED.LED sub-node properties:
- gpios :  Should specify the LED's GPIO, see "gpios property" inDocumentation/devicetree/bindings/gpio/gpio.txt.  Active low LEDs should beindicated using flags in the GPIO specifier.
- label :  (optional)see Documentation/devicetree/bindings/leds/common.txt
- linux,default-trigger :  (optional)see Documentation/devicetree/bindings/leds/common.txt
- default-state:  (optional) The initial state of the LED.  Validvalues are "on", "off", and "keep".  If the LED is already on or offand the default-state property is set the to same value, then noglitch should be produced where the LED momentarily turns off (oron).  The "keep" setting will keep the LED at whatever its currentstate is, without producing a glitch.  The default is off if thisproperty is not present.
- retain-state-suspended: (optional) The suspend state can be retained.Suchas charge-led gpio.Examples:#include <dt-bindings/gpio/gpio.h>leds {compatible = "gpio-leds";hdd {label = "IDE Activity";gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW>;linux,default-trigger = "ide-disk";};fault {gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>;/* Keep LED on if BIOS detected hardware fault */default-state = "keep";};
};run-control {compatible = "gpio-leds";red {gpios = <&mpc8572 6 GPIO_ACTIVE_HIGH>;default-state = "off";};green {gpios = <&mpc8572 7 GPIO_ACTIVE_HIGH>;default-state = "on";};
};leds {compatible = "gpio-leds";charger-led {gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;linux,default-trigger = "max8903-charger-charging";retain-state-suspended;};
};

四、我这里的dts配置是

 leds {compatible = "gpio-leds";topdon_led {default-state = "off";gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;pinctrl-names = "default";linux,default-trigger = "heartbeat";pinctrl-0 = <&led1_ctl>;status = "okay";};topdon_buzzer {default-state = "on";gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;pinctrl-names = "default";pinctrl-0 = <&beep_gpio>;status = "okay";};};

五、测试中发现如果配置的gpio已经被占用了,在/sys/class/leds不会生成相应的节点。

六、运行后可以看到相应的gpio被注册申请。

七、这个时候执行echo 0 >/sys/bus/platform/devices/leds/leds/topdon_led/brightness 命令led灯会有变化

八、这里有个问题,设置default-trigger = "heartbeat"没有效果,执行cat trigger也看不到相关选项。

8.1、cat trigger 没有看到有heartbeat。

8.2、解决方法:勾选相应的选项

8.3、按上面修改之后,就ok了

九、定时器timer的使用, echo timer >trigger切换到定时器功能,然后通过写delay_on和delay_off来修改频率,我这样修改后led以10HZ的频率在闪烁。

 十、参考文章

(686条消息) linux驱动之LED实验(基于系统自带leds-gpio.c驱动)_金城孤客的博客-CSDN博客https://blog.csdn.net/fengweibo112/article/details/102744366(685条消息) Linux驱动开发学习笔记【12】:Linux自带LED灯驱动_hurryddd的博客-CSDN博客_linux,default-triggerhttps://blog.csdn.net/m0_37845735/article/details/107328682?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-107328682-blog-102744366.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-107328682-blog-102744366.pc_relevant_aa&utm_relevant_index=1

(686条消息) Linux驱动运行灯 Heartbeat_fensnote的博客-CSDN博客https://blog.csdn.net/wuquan_1230/article/details/115867847

2022-10-20 Linux自带LED灯驱动gpio-leds 心跳呼吸灯heartbeat、定时器timer的使用相关推荐

  1. Linux驱动开发学习笔记【12】:Linux自带LED灯驱动

    目录 一.内核自带LED驱动使能 二.内核自带LED驱动分析 三.内核自带LED驱动使用 一.内核自带LED驱动使能 在Linux内核中,已经自带了LED灯的驱动程序,使用的就是platform平台驱 ...

  2. 千锋教育2218期2022.10.20日

    文章目录 复习 Java标识符命名规则,运算符,分支结构 1. Java标识符命名规则 1.1 命名规则案例 1.2 基于 阿里巴巴Java开发规约限制 的标识符命名规范 2. 运算符 2.1 算术运 ...

  3. pytorch安装和tensorflow环境搭建和cuda加速和cudann安装教程记录日期2022.10.20日

    pytorch安装的过程踩得坑,需要教程的直接看最后红字. 5月31日开始的 最近想要学习神经网络于是. 首先在网上查一下,这些人都用什么库写的神经网络. numpy出现10次 TensorFlow出 ...

  4. 电量百分百亮绿灯,其余充电电量均为红灯。电量低于15闪红灯三秒一次。搜网灯没网时候绿灯快闪,有网了做呼吸灯五秒一次,呼吸灯可广播控制打开关闭。判断是否连上网。

    frameworks/ base/services/core/java/com/android/server/BatteryService.java 电量百分百亮绿灯,其余充电电量均为红灯: publ ...

  5. android屏幕灯功能吗,呼吸灯有什么用 手机呼吸灯作用大公开【图文】

    虽然说现在很多人的人都在使用智能手机,但是大家对于手机上的一些构造可能并不是很了解,就像是手机正面屏幕上那个经常一闪一闪的灯,大概很多朋友还不知道那是什么东西.其实这个很小的灯叫做 呼吸灯 ,是近几年 ...

  6. 51单片机呼吸灯c语言,51单片机呼吸灯C语言版.doc

    基于单片机与PWM的呼吸灯设计 实训指导教师: 班 级: 设 计 人姓名: 设 计 日 期: 设 计 地 点: 完 成 时 间: 摘要 本设计是基于单片机的原理与接口设计,采用单片机I/O口,加以C语 ...

  7. dsp呼吸灯C语言编程,DSP28335 呼吸灯程序

    DSP28335呼吸灯程序 //########################################################################### // // FI ...

  8. 【杰理AC692X】6脚RGB 5050灯珠实现全彩呼吸灯的方法

    在消费电子中,呼吸灯和渐变灯都很常见,常见的呼吸灯要么是六种颜色,要么是七种,因为做这7种颜色的呼吸灯只要让PWM同增同减就好,是最简单的做法. 但要做全彩呼吸灯就没这么简单了,可以用HSB(HSV) ...

  9. Ununtu 18.04 安装Carla 0.9.13 以及Carla ros bridge 超级避坑指南(更新于2022.10.20)

    Carla0.9.13 以及Carla ros bridge 超级避坑指南 Carla0.9.13 以及Carla ros bridge 超级避坑指南 站在巨人肩膀前进 显卡驱动问题 首先就是虚幻4的 ...

最新文章

  1. 在ASP.NET MVC应用中开发插件框架(中英对照)
  2. Atom ctrl+atl+b 快捷键修复
  3. 获取笔记本的SHA1的值。
  4. java压缩文件能否不压缩路径_如何在Java中压缩文件而不包含文件路径
  5. linux yum自动挂载_Linux系统本地Yum仓库制作
  6. java邮件程序实例_java 发送邮件简单实例
  7. 项目管理:实现按时、按预算、基于目标的交付的七个步骤
  8. hashset去重原理_快手:Druid精确去重的设计与实现
  9. HaDoop安装配置笔记
  10. 自媒体运营,你要的小工具来了
  11. 一个漂亮的暗系色调网站主页,外表美观。
  12. Bladex Workflow工作流引擎开发进阶-版本v1.2.2
  13. 用css实现骰子的六个面(flex布局的学习)
  14. kali网络问题解决办法
  15. 从 git 的历史记录中彻底删除文件或文件夹
  16. 图片怎么转化为pdf格式文件?图片如何转变为pdf格式?
  17. CSS中文字间距和行间距
  18. C. Hilbert's Hotel
  19. matlab输出数据为excel文件
  20. 瑞士轮赛制模拟器_Major瑞士轮赛制ELO系统解析 公认的权威规则

热门文章

  1. jsonl后缀名是什么意思
  2. 青龙面板-简单获取京东CK
  3. oracle 8i 中文转拼音
  4. 亲历谷歌翻译,论机器翻译之浅薄。
  5. 必备知识:关于曲线的一、二、三阶导的总结
  6. 豌豆荚 Android 开发岗面经
  7. ChatGPT教程之 02 ChatGPT 正在经历托马斯爱迪生的时刻,为什么需要获得突破性技术
  8. 公网IP和内网IP的区别
  9. [工具]Vscode远程开发与远程调试
  10. vue-router之addRoutes(动态路由/权限路由)使用分析