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

【RK3568】linux嵌入式教程——点亮LED

前言

在嵌入式开发中,点亮一个 LED 是入门级的实验,但它能帮助我们熟悉硬件接口、内核驱动和用户空间编程。本文将介绍如何在 RK3568 平台上通过 Linux 系统点亮一个 LED,并通过实际操作加深对嵌入式开发的理解。

一、硬件准备

1.1 RK3568 平台简介

  • RK3568 是一款基于 ARM 架构的嵌入式处理器,广泛应用于智能硬件和物联网设备。

  • 介绍 RK3568 的主要特性(如核心架构、内存支持、外设接口等)。

  • 作者采用的开发板是临滴科技的LKD3568开发套件

1.2 硬件连接

LKD3568开发板上有 2 个 LED 状态工作灯,不需要额外连接硬件 如下表所示:

LEDPin namePin number
GreenGPIO0_B715
GreenGPIO4_C4148

可通过使用 LED 设备子系统或者直接操作 GPIO 控制该 LED

二、软件环境搭建

2.1 系统准备

  • 在以往的文章有中提及

2.2 开发工具

  • SSH,MOBAX工具

三、点亮 LED 的方法

3.1 通过命令行操作

3.1.1 查找 LED 设备
  • 介绍如何通过 /sys 文件系统查找 LED 设备路径。

  • 示例命令:

    ls /sys/class/leds/
3.1.2 控制 LED 亮度
  • 通过 echo 命令控制 LED 的亮度。需要注意的是,在通过命令操作设备目录时需要高权限

  • 示例命令:

  • sudo -s//超级权限
    
    echo 0 > /sys/class/leds/work1/brightness //灯亮
    echo 1 > /sys/class/leds/work1/brightness //灯灭
  • 提供点亮和熄灭 LED 的完整命令。

3.2 编写 C 程序控制 LED

  • 介绍如何使用 C 语言编写程序控制 LED。

  • 提供一个简单的示例代码,展示如何通过文件操作控制 /sys/class/leds/work1/brightness

  • 示例代码:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main() {
        FILE *fp = fopen("/sys/class/leds/work1/brightness", "w");
        if (!fp) {
            perror("Failed to open brightness file");
            return -1;
        }
        fprintf(fp, "1");
        fclose(fp);
        printf("LED is turned on.\n");
        return 0;
    }
  • 编译和运行程序。

gcc -o led led.c

3.4 使用Python 控制

  • 创建文件:
touch led.py
  • 示例代码:
# -*- coding: utf-8 -*-
import os
import time
def control_led(brightness):
   
    led_path = "/sys/class/leds/work1/brightness"  # LED 的路径
    try:
        with open(led_path, "w") as fp:
            fp.write(str(brightness))  # 写入亮度值
        print(f"LED is turned {'on' if brightness == 1 else 'off'}.")
    except IOError as e:
        print(f"Failed to open brightness file: {e}")
    except Exception as e:
        print(f"An error occurred: {e}")

if __name__ == "__main__":
  
    control_led(1)
    time.sleep(1)
    control_led(0)
    time.sleep(1)
    control_led(1)
    time.sleep(1)
    control_led(0)
    time.sleep(1)
 
  • 运行
sudo python3 led.py

四、常见问题及解决方法

4.1 权限问题

  • 如果出现“Permission denied”错误。

  • sudo -s//超级权限
    

4.2 设备未识别

  • 如果 LED 设备未被识别,说明如何检查内核驱动是否加载。

  • 提供内核日志查看方法:

    dmesg | grep -i led

五、总结

  • 回顾点亮 LED 的主要步骤。

  • 强调掌握 Linux 嵌入式开发基础的重要性。

六、参考资源

  • LED — LKD3568 v1.3.3 documentation

  • LKD3568 用户手册 — LKD3568 v1.3.3 documentation


http://www.kler.cn/a/545908.html

相关文章:

  • 基于Docker-compose的禅道部署实践:自建MySQL与Redis集成及故障排查指南
  • DeepSeek大模型响应速度优化策略
  • AWS SES 邮件服务退信/投诉处理与最佳实践指南
  • mysql大数据量分页查询
  • easyexcel快速使用
  • Java的synchronized是怎么实现的?
  • Jenkins | Jenkins安装
  • HTN77A0:超低静态功耗、0.7A同步降压转换器特性资料参数
  • 【Leetcode 每日一题 - 扩展】2517. 礼盒的最大甜蜜度
  • 一场始于 Selector Error 的拯救行动:企查查数据采集故障排查记
  • 算法——结合实例了解启发式搜索
  • 32单片机学习记录2之按键
  • 如何获取高质量的谷歌外链?
  • Cursor AI编程指南
  • 流程图基本结构
  • 串口服务器介绍
  • 单片机的原理
  • Flask使用JWT认证
  • 【Python】条件循环
  • 人工智能在临床应用、药物研发以及患者护理等方面的最新研究进展|顶刊速递·25-02-12