笔记: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驱动一般是这样写,LED驱动可以控制GPIO的电平变化,生成文件节点很方便 leds: leds {compatible "gpio-leds";gpio_demo: gpio_demo {label "gpio_demo";gpios <&gpio0 RK_PC0 GPIO_ACTIV…...
能耗管理+分区温控成为开发节能、省电神器的关键!从此告别电费刺客时代
取暖器在人们脑海中最深刻的印象,就是费电!而它耗电量大的原因,主要在于它是靠电能直接转化为热能:在取暖设备通电后,内部高电阻的电热丝发热,风机会将这股热量吹散到室内,从而达到全屋取暖的效…...
垃圾回收 - 复制算法
GC复制算法是Marvin L.Minsky在1963年研究出来的算法。说简单点,就是只把某个空间的活动对象复制到其它空间,把原空间里的所有对象都回收掉。这是一个大胆的想法。在此,我们将复制活动对象的原空间称为From空间,将粘贴活动对象的新…...
基于SpringMVC实现常见功能
基于SpringMVC实现常见功能 防止XSS攻击 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到…...
MetInfo5.0文件包含漏洞
MetInfo历史版本与文件 环境在这里下载,使用phpstudy搭建 我们来看到这个index.php,如下图所示,其中定义了fmodule变量与module变量,其中require_once语句表示将某个文件引入当前文件,在这个代码中,通过r…...
【SpringBoot】SpringBoot实现基本的区块链的步骤与代码
以下是Spring Boot实现基本的区块链代码的步骤: 创建一个Block类,它表示一个区块,包含一个区块头和一个区块体。区块头包括版本号、时间戳、前一个区块的哈希值和当前区块的哈希值。区块体包含交易数据。 创建一个Blockchain类,它…...
Photoscan/Metashape 2.0.0中的地面激光扫描处理
在Metashape(原Photoscan)2.0.0, 结构化地面激光扫描和非结构化航空激光扫描都可以使用导入点云(文件>导入>导入点云)命令导入。导入时会保留所有点属性(包括结构化信息)。 本文讨论以下主题 如何将激光扫描数据导入项目&am…...
git快速使用
1、下载git 设置签名 2、基本概念 工作区:写代码的地方。 暂存区:.git的.index 工作区:.git 3、常用操作 本地codinggit init, 初始化一个本地仓库,项目根目录下会出现个.gitgit remote add origin gitgithub.com…...
java 实现代理模式
代理模式(Proxy Pattern)是一种结构型设计模式,它允许一个对象(代理对象)充当另一个对象(被代理对象)的接口,以控制对该对象的访问。代理模式通常用于以下情况: 远程代理…...
【每日一题】力扣1768. 交替合并字符串
题目以及链接: 1768. 交替合并字符串 给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。 返回 合并后的字符串 。 示例 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中使用的命令需要用英文分号结尾(启动/关闭mysql服务不需要带分号) net start mysql 启动mysql服务(需要管理员启动cmd) net stop mysql关闭mysql服务(需要管理员启动cmd) m…...
mysql-1:认识mysql
文章目录 数据库概述什么是数据库什么是关系型数据库 MySQL的概述MySQL是什么MySQL发展历程 SQL的概述什么是SQLSQL发展的简要历史:SQL语言分类 数据库概述 什么是数据库 数据库就是[存储数据的仓库],其本质是一个[文件系统],数据按照特定的…...
算法通关村-----堆在查找和排序中的应用
数组中的第K个最大元素 问题描述 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。详见le…...
直方图统计增强方法
直方图统计增强方法的原理: 直方图统计增强是一种基于像素值分布的图像增强技术,通过调整像素值的分布来增强图像的对比度和细节。其原理是根据图像的直方图信息,将原始像素值映射到一个新的像素值域,从而改变图像的亮度和对比…...
字节二面:如果高性能渲染十万条数据?
前言 最近博主在字节面试中遇到这样一个面试题,这个问题也是前端面试的高频问题,作为一名前端开发工程师,我们虽然可能很少会遇到后端返回十万条数据的情况,但是了解掌握如何处理这种情况,能让你对前端性能优化有更深的…...
Mysql高阶语句(二)
一、设置别名(alias ——>as) 在 MySQL 查询时,当表的名字比较长或者表内某些字段比较长时,为了方便书写或者 多次使用相同的表,可以给字段列或表设置别名。使用的时候直接使用别名,简洁明了࿰…...
算法笔记 二叉搜索树
二叉搜索树(Binary Search Tree,简称 BST)是一种数据结构,用于存储具有可比较键(通常是数字或字符串)的元素 1 结构特点 节点结构:每个节点都有一个键和两个子节点(左子节点和右子…...
微软牵手Linux:Ubuntu“系统”上架win10应用商店啦
导读继SUSE Linux登陆之后,Ubuntu今天正式以UWP应用的身份上架Win10应用商店。Windows Insider用户升级到Win10秋季创意者更新预览版Build 16190及以上就可以下载和安装Ubuntu系统应用。一旦下载和安装完Ubuntu应用后,它将开始在你的Windows10 PC上安装U…...
leetcode做题笔记126. 单词接龙 II
按字典 wordList 完成从单词 beginWord 到单词 endWord 转化,一个表示此过程的 转换序列 是形式上像 beginWord -> s1 -> s2 -> ... -> sk 这样的单词序列,并满足: 每对相邻的单词之间仅有单个字母不同。转换过程中的每个单词 s…...
ESP32S3驱动微雪2.8寸屏(CST328触摸IC)踩坑实录:从I2C上拉到坐标翻转的完整避坑指南
ESP32S3驱动CST328触摸屏实战避坑指南:从I2C配置到LVGL集成的完整解决方案 刚拿到微雪2.8寸屏时,我本以为按照常规流程就能快速集成触摸功能,没想到CST328这颗冷门触摸IC给了我当头一棒。市面上几乎找不到完整的ESP-IDF驱动实现,海…...
炉石传说自动化系统构建指南:从重复劳动到智能游戏体验
炉石传说自动化系统构建指南:从重复劳动到智能游戏体验 【免费下载链接】Hearthstone-Script Hearthstone script(炉石传说脚本) 项目地址: https://gitcode.com/gh_mirrors/he/Hearthstone-Script 发现游戏自动化的价值 在策略卡牌游…...
Leantime容器化部署实战指南:从环境搭建到生产运维
Leantime容器化部署实战指南:从环境搭建到生产运维 【免费下载链接】docker-leantime Official Docker Image for Leantime https://leantime.io 项目地址: https://gitcode.com/gh_mirrors/do/docker-leantime 环境准备:部署前的必要检查 系统兼…...
7个关键步骤!Triton推理服务灾备演练与故障注入测试全指南
7个关键步骤!Triton推理服务灾备演练与故障注入测试全指南 【免费下载链接】server The Triton Inference Server provides an optimized cloud and edge inferencing solution. 项目地址: https://gitcode.com/gh_mirrors/server117/server Triton Inferen…...
数据库设计利器:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF智能生成SQL与优化建议
数据库设计利器:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF智能生成SQL与优化建议 1. 专业级SQL生成能力展示 在数据库开发领域,编写高效准确的SQL语句是每个开发者和DBA的基本功。Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF模型…...
MusePublic圣光艺苑入门必看:‘凝光成影’技术白皮书——光照建模原理简析
MusePublic圣光艺苑入门必看:‘凝光成影’技术白皮书——光照建模原理简析 “见微知著,凝光成影。在星空的旋律中,重塑大理石的尊严。” 1. 从画室到算法:光照建模的艺术与科学 当你站在一幅梵高的《星空》前,是否曾好…...
GitHub中文界面终极指南:5分钟告别英文恐惧症
GitHub中文界面终极指南:5分钟告别英文恐惧症 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitHub满屏的英文而烦…...
李慕婉-仙逆-造相Z-Turbo模型安装包制作教程
李慕婉-仙逆-造相Z-Turbo模型安装包制作教程 1. 开篇:为什么需要制作安装包 如果你已经体验过李慕婉-仙逆-造相Z-Turbo模型的文生图能力,可能会发现每次部署都需要重复安装依赖、配置环境。制作安装包就是为了解决这个问题,让模型可以一键安…...
别再只盯着神经网络了!聊聊AI的另外两条路:专家系统和强化学习怎么用
当深度学习不是最优解:专家系统与强化学习的实战突围指南 在科技媒体的狂轰滥炸下,神经网络几乎成了人工智能的代名词。但当我们真正将AI技术落地到企业级场景时,往往会发现:那些需要处理小样本数据、要求决策过程透明可解释、或者…...
解决Xcode真机调试常见问题:App ID限制与证书信任错误处理
Xcode真机调试全攻略:突破App ID限制与证书信任难题 1. 引言:为什么开发者需要掌握无证书调试? 在iOS开发过程中,真机调试是不可或缺的环节。然而,传统的证书配置流程繁琐复杂,尤其是对于独立开发者或小型…...
