当前位置: 首页 > news >正文

笔记:linux中LED(GPIO)驱动设备树配置和用法

设备树中节点配置

设备树中的LED驱动一般是这样写,LED驱动可以控制GPIO的电平变化,生成文件节点很方便

leds: leds {compatible = "gpio-leds";gpio_demo: gpio_demo {label = "gpio_demo";gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;linux,default-trigger = "default-off";default-state = "on";};
}

字段解释

compatible = "gpio-leds";

对应了驱动中 drivers/leds/leds-gpio.c这个驱动文件

label = "gpio_demo";

这个名字会在文件系统中生成对应的设备节点

/sys/class/leds/gpio_demo

linux,default-trigger = "default-off";

指的是led的触发方式  default-off是默认none作为普通的功能来使用

gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;

前面两个参数是设置哪个GPIO

后面一个参数是指的高低电平有效

default-state = "on";

默认状态 on或者off

设置方式和电平的关系

设置方式

默认电平

brightness=0

brightness>0

gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;

linux,default-trigger = "default-off";  

default-state = "on"

    高     

gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;

linux,default-trigger = "default-off";

default-state = "off"

gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;

linux,default-trigger = "default-off";

default-state = "on"

gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;

linux,default-trigger = "default-off";

default-state = "off"

触发方式

触发方式linux,default-trigger = "default-off";

触发方式类型可以参考使用内核里面的支持项,源码在drivers\leds\trigger下面

drivers/leds/trigger/ledtrig-activity.c

drivers/leds/trigger/ledtrig-audio.c

drivers/leds/trigger/ledtrig-backlight.c

drivers/leds/trigger/ledtrig-camera.c

drivers/leds/trigger/ledtrig-cpu.c

drivers/leds/trigger/ledtrig-default-on.c

drivers/leds/trigger/ledtrig-disk.c

drivers/leds/trigger/ledtrig-gpio.c

drivers/leds/trigger/ledtrig-heartbeat.c

drivers/leds/trigger/ledtrig-mtd.c

drivers/leds/trigger/ledtrig-multi-control.c

drivers/leds/trigger/ledtrig-netdev.c

drivers/leds/trigger/ledtrig-oneshot.c

drivers/leds/trigger/ledtrig-panic.c

drivers/leds/trigger/ledtrig-pattern.c

drivers/leds/trigger/ledtrig-timer.c

drivers/leds/trigger/ledtrig-transient.c

常用的有timer heartbeat oneshot

使用的时候需要检测内核config中是否有开启,使用哪个就开启哪个

CONFIG_LEDS_TRIGGER_TIMER=y

CONFIG_LEDS_TRIGGER_HEARTBEAT=y

CONFIG_LEDS_TRIGGER_BACKLIGHT=y

CONFIG_LEDS_TRIGGER_DEFAULT_ON=y

CONFIG_LEDS_TRIGGER_ONESHOT=y


 

以timer和oneshot举例

timer

leds: leds {

        compatible = "gpio-leds";

        gpio_demo: gpio_demo {

            label = "gpio_demo";

            gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;

            linux,default-trigger = "timer";

            default-state = "on";

        };

}

echo 500 > /sys/class/leds/gpio_demo/delay_on

echo 500 > /sys/class/leds/gpio_demo/delay_off

这样操作后GPIO电平就会高500ms低500ms


 

oneshot

leds: leds {

        compatible = "gpio-leds";

        gpio_demo: gpio_demo {

            label = "gpio_demo";

            gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;

            linux,default-trigger = "oneshot";

            default-state = "on";

        };

}

echo 1000 > /sys/class/leds/gpio_demo/delay_on

echo 1 > /sys/class/leds/gpio_demo/short

这样就会让电平变高1秒后变低

如果invert设置1后那么就是变低1秒后变高

相关文章:

笔记:linux中LED(GPIO)驱动设备树配置和用法

设备树中节点配置 设备树中的LED驱动一般是这样写&#xff0c;LED驱动可以控制GPIO的电平变化&#xff0c;生成文件节点很方便 leds: leds {compatible "gpio-leds";gpio_demo: gpio_demo {label "gpio_demo";gpios <&gpio0 RK_PC0 GPIO_ACTIV…...

能耗管理+分区温控成为开发节能、省电神器的关键!从此告别电费刺客时代

取暖器在人们脑海中最深刻的印象&#xff0c;就是费电&#xff01;而它耗电量大的原因&#xff0c;主要在于它是靠电能直接转化为热能&#xff1a;在取暖设备通电后&#xff0c;内部高电阻的电热丝发热&#xff0c;风机会将这股热量吹散到室内&#xff0c;从而达到全屋取暖的效…...

垃圾回收 - 复制算法

GC复制算法是Marvin L.Minsky在1963年研究出来的算法。说简单点&#xff0c;就是只把某个空间的活动对象复制到其它空间&#xff0c;把原空间里的所有对象都回收掉。这是一个大胆的想法。在此&#xff0c;我们将复制活动对象的原空间称为From空间&#xff0c;将粘贴活动对象的新…...

基于SpringMVC实现常见功能

基于SpringMVC实现常见功能 防止XSS攻击 XSS攻击全称跨站脚本攻击&#xff0c;是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆&#xff0c;故将跨站脚本攻击缩写为XSS&#xff0c;XSS是一种在web应用中的计算机安全漏洞&#xff0c;它允许恶意web用户将代码植入到…...

MetInfo5.0文件包含漏洞

MetInfo历史版本与文件 环境在这里下载&#xff0c;使用phpstudy搭建 我们来看到这个index.php&#xff0c;如下图所示&#xff0c;其中定义了fmodule变量与module变量&#xff0c;其中require_once语句表示将某个文件引入当前文件&#xff0c;在这个代码中&#xff0c;通过r…...

【SpringBoot】SpringBoot实现基本的区块链的步骤与代码

以下是Spring Boot实现基本的区块链代码的步骤&#xff1a; 创建一个Block类&#xff0c;它表示一个区块&#xff0c;包含一个区块头和一个区块体。区块头包括版本号、时间戳、前一个区块的哈希值和当前区块的哈希值。区块体包含交易数据。 创建一个Blockchain类&#xff0c;它…...

Photoscan/Metashape 2.0.0中的地面激光扫描处理

在Metashape(原Photoscan)2.0.0, 结构化地面激光扫描和非结构化航空激光扫描都可以使用导入点云&#xff08;文件>导入>导入点云&#xff09;命令导入。导入时会保留所有点属性&#xff08;包括结构化信息&#xff09;。 本文讨论以下主题 如何将激光扫描数据导入项目&am…...

git快速使用

1、下载git 设置签名 2、基本概念 工作区&#xff1a;写代码的地方。 暂存区&#xff1a;.git的.index 工作区&#xff1a;.git 3、常用操作 本地codinggit init&#xff0c; 初始化一个本地仓库&#xff0c;项目根目录下会出现个.gitgit remote add origin gitgithub.com…...

java 实现代理模式

代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许一个对象&#xff08;代理对象&#xff09;充当另一个对象&#xff08;被代理对象&#xff09;的接口&#xff0c;以控制对该对象的访问。代理模式通常用于以下情况&#xff1a; 远程代理…...

【每日一题】力扣1768. 交替合并字符串

题目以及链接&#xff1a; 1768. 交替合并字符串 给你两个字符串 word1 和 word2 。请你从 word1 开始&#xff0c;通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长&#xff0c;就将多出来的字母追加到合并后字符串的末尾。 返回 合并后的字符串 。 示例 1&…...

vscode新建vue3文件模板

输入快捷新建的名字 enter 确认后在文件中输入以下内容 {// Place your snippets for vue here. Each snippet is defined under a snippet name and has a prefix, body and// description. The prefix is what is used to trigger the snippet and the body will be expand…...

MySql学习笔记02——MySql的简单介绍

MySQL 常用命令 注意在mysql中使用的命令需要用英文分号结尾&#xff08;启动/关闭mysql服务不需要带分号&#xff09; net start mysql 启动mysql服务&#xff08;需要管理员启动cmd&#xff09; net stop mysql关闭mysql服务&#xff08;需要管理员启动cmd&#xff09; m…...

mysql-1:认识mysql

文章目录 数据库概述什么是数据库什么是关系型数据库 MySQL的概述MySQL是什么MySQL发展历程 SQL的概述什么是SQLSQL发展的简要历史&#xff1a;SQL语言分类 数据库概述 什么是数据库 数据库就是[存储数据的仓库]&#xff0c;其本质是一个[文件系统]&#xff0c;数据按照特定的…...

算法通关村-----堆在查找和排序中的应用

数组中的第K个最大元素 问题描述 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。详见le…...

直方图统计增强方法

直方图统计增强方法的原理&#xff1a;   直方图统计增强是一种基于像素值分布的图像增强技术&#xff0c;通过调整像素值的分布来增强图像的对比度和细节。其原理是根据图像的直方图信息&#xff0c;将原始像素值映射到一个新的像素值域&#xff0c;从而改变图像的亮度和对比…...

字节二面:如果高性能渲染十万条数据?

前言 最近博主在字节面试中遇到这样一个面试题&#xff0c;这个问题也是前端面试的高频问题&#xff0c;作为一名前端开发工程师&#xff0c;我们虽然可能很少会遇到后端返回十万条数据的情况&#xff0c;但是了解掌握如何处理这种情况&#xff0c;能让你对前端性能优化有更深的…...

Mysql高阶语句(二)

一、设置别名&#xff08;alias ——>as&#xff09; 在 MySQL 查询时&#xff0c;当表的名字比较长或者表内某些字段比较长时&#xff0c;为了方便书写或者 多次使用相同的表&#xff0c;可以给字段列或表设置别名。使用的时候直接使用别名&#xff0c;简洁明了&#xff0…...

算法笔记 二叉搜索树

二叉搜索树&#xff08;Binary Search Tree&#xff0c;简称 BST&#xff09;是一种数据结构&#xff0c;用于存储具有可比较键&#xff08;通常是数字或字符串&#xff09;的元素 1 结构特点 节点结构&#xff1a;每个节点都有一个键和两个子节点&#xff08;左子节点和右子…...

微软牵手Linux:Ubuntu“系统”上架win10应用商店啦

导读继SUSE Linux登陆之后&#xff0c;Ubuntu今天正式以UWP应用的身份上架Win10应用商店。Windows Insider用户升级到Win10秋季创意者更新预览版Build 16190及以上就可以下载和安装Ubuntu系统应用。一旦下载和安装完Ubuntu应用后&#xff0c;它将开始在你的Windows10 PC上安装U…...

leetcode做题笔记126. 单词接龙 II

按字典 wordList 完成从单词 beginWord 到单词 endWord 转化&#xff0c;一个表示此过程的 转换序列 是形式上像 beginWord -> s1 -> s2 -> ... -> sk 这样的单词序列&#xff0c;并满足&#xff1a; 每对相邻的单词之间仅有单个字母不同。转换过程中的每个单词 s…...

windows下运行springboot的jar包,修改替换class文件,修改配置文件application,打包

在windows下跑springboot的jar包&#xff0c;经常会用到一些命令行和操作。 1、修改配置文件&#xff08;以application.yml为例&#xff09; #提取文件 jar xvf mqtt-10.1.0.jar BOOT-INF/classes/application.yml#将文件装回jar包 jar uvf mqtt-10.1.0.jar BOOT-INF/classe…...

PMD 检查java代码:可以去掉无用的括号(UselessParentheses)

这个规则的优先级比较低。 https://docs.pmd-code.org/pmd-doc-6.55.0/pmd_rules_java_codestyle.html#uselessparentheses 无用的括号可以去掉。当然&#xff0c;有时候为了避免理解起来困难&#xff0c;加上括号反而更加清晰。 例如&#xff1a; public static short calc…...

【数据结构练习】栈的面试题集锦

目录 前言&#xff1a; 1.进栈过程中可以出栈的选择题 2.将递归转化为循环 3.逆波兰表达式求值 4.有效的括号 5. 栈的压入、弹出序列 6. 最小栈 前言&#xff1a; 数据结构想要学的好&#xff0c;刷题少不了&#xff0c;我们不仅要多刷题&#xff0c;还要刷好题&#x…...

简单工厂模式概述和使用

目录 一、简单工厂模式简介1. 定义2. 使用动机 二、简单工厂模式结构1.模式结构2. 时序图 三、简单工厂的使用实例四、简单工厂模式优缺点五、简单工厂模式在Java中的应用 一、简单工厂模式简介 原文链接 1. 定义 简单工厂模式(Simple Factory Pattern)&#xff1a;又称为静…...

软件工程概述

软件工程概述 软件工程指的是应用计算机科学、数学及管理科学等原理&#xff0c;以工程化的原则和方法来解决软件问题的工程&#xff0c;目的是提高软件生产效率、提高软件质量、降低软件成本。 1. 计算机软件 计算机软件指的是计算机系统中的程序及其文档。程序是计算任务的…...

国际网页短信软件平台搭建定制接口说明|移讯云短信系统

国际网页短信软件平台搭建定制接口说明|移讯云短信系统 通道路由功能介绍 支持地区通道分流&#xff0c;支持关键字&#xff0c;关键词通道分流&#xff0c;支持白名单独立通道&#xff0c;支持全网通道分流&#xff0c;支持通道可发地区设置&#xff0c;通道路由分组&#x…...

Java“牵手”阿里巴巴店铺所有商品API接口数据,通过店铺ID获取整店商品详情数据,阿里巴巴店铺所有商品API申请指南

阿里巴巴平台店铺所有商品数据接口是开放平台提供的一种API接口&#xff0c;通过调用API接口&#xff0c;开发者可以获取阿里巴巴整店的商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片、价格信息等详细信息 。 获取店铺所有商品接口API是一种用于获取电商平台…...

【Sql】把数据库字段用函数根据逗号分裂成列表,然后判断列表中是否包含目标值

【Sql】把数据库字段用函数根据逗号分裂成列表&#xff0c;然后判断列表中是否包含目标值 【1】问题描述【2】Oracle内置函数解决【3】mysql的内置函数INSTR()【4】mysql的内置函数FIND_IN_SET() 【1】问题描述 数据库中【库信息db】和【集群信息cluster】是一对多的关系&…...

docker基本命令记录

Docker 是一个开源的容器技术,它允许开发人员将应用程序及其所有依赖项打包到一个容器中,然后轻松地在任何地方部署和运行。以下是 Docker 的一些基本操作: 基础操作: 启动 Docker:service docker start停止 Docker:service docker stop查看 Docker 信息:docker info容器操作…...

web之利用延迟实现复杂动画、animation

文章目录 效果图htmlstyleJavaScript 效果图 html <div class"container"><div class"ball"></div><input type"range" min"0" max"1" step"0.01" /> </div>style body {display…...

三级分销网站开发/qq空间秒赞秒评网站推广

主要是大小写问题 在扁平发布模式下&#xff0c;如果存在大小写不同的文件&#xff0c;文件会被替换掉。而模拟上运行没问题&#xff0c;在真机上运行 有问题。找了半天才发现&#xff0c;坑啊&#xff01;转载于:https://www.cnblogs.com/xdao/p/cocos2dx_keng03.html...

网站开发主要框架 后端/网站优化推广教程

摘要&#xff1a;本文所讲述的内容&#xff0c;为ElasticSearch&#xff08;以下简称ES&#xff09;全文搜索引擎在实际大数据项目的应用&#xff1b;ES的底层是开源库 Lucene。但是&#xff0c;你没法直接用 Lucene&#xff0c;必须自己写代码去调用它的接口。ES 是 Lucene 的…...

做网站找那个公司/淄博网站推广

def test():for i in range(4):yield i ttest() t1(i for i in t) #t1 就是把t这个生成器再次用表达式生成t1生成器 def test():for i in range(4):yield i ttest() #这个生成器里还没有值 只有执行了里面才有值 不next就没值for i in t:print(i)t1(i for i in t) print…...

海珠做网站/济南网站设计

第一个例子&#xff1a; 递归的作用&#xff1a;它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。 一般来说&#xff0c;递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时&#xff0c;递归前进&#xff1b;当边界条件满足时&am…...

浏阳网站制作公司/家庭优化大师下载

做管理者&#xff0c;带团队&#xff0c;不用些代码可以说是很多IT从业人员的职业目标&#xff0c;认为做到了管理层&#xff0c;就不用天天处理技术问题&#xff0c;写代码调设备。很多人都计划5年以后做到技术经理和技术总监&#xff0c;那么到底多久可以做到管理层呢&#x…...

东莞网站建设技术支持/新品怎么刷关键词

因为Java识别编码为Unicode&#xff0c;而计算机系统编码常常是GBK&#xff0c;UTF8等编码&#xff0c;所以要转换为Unicode编码这时可以用Java\jdk1.x.x\bin\native2ascii.exe工具。 用JDK提供的native2ascii&#xff0c;进行编码转换用法&#xff1a;native2ascii [-reverse]…...