Linux驱动-基于QT控制LED灯

这篇具有很好参考价值的文章主要介绍了Linux驱动-基于QT控制LED灯。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境搭建

  • 平台
    韦东山100ask imax6ull pro && 大象嵌入式开发板
  • Build Root
    使用Build root编译image,具体配置可参考《嵌入式Linux应用开发完全手册-IMX6ULL开发板(从零移植篇-预览版)-V0.1.pdf》,使用buildroot后仅需要配置menuconfig即可自动编译出完整的镜像,而且各种安装包也可以在output/build目录下拿到,有了它就不需要再为编译各种库坑了。我的理解是,解决环境问题其实并不能帮助我们成长太多,而这又会占用很多时间。成熟的公司,比如芯片原厂都会有很成熟的编译环境,也会有专门的部门来负责各种系统集成。各个驱动模块的team只需要解决好自己模块内的事情,这样总体效率就很高。
  • QT Creator
    我使用的方法是直接在Windows端安装QT Creator,建立工程写代码,然后再将项目文件拷贝到ubuntu Linux下做交叉编译,具体操作见:Linux驱动-基于Buildroot构建系统镜像后实现基于QT项目开发之环境配置

LED驱动程序

固定的驱动框架编写代码即可,根据设备资源的获取方法的差异导致有几种不同的驱动框架,驱动部分都一样(file_operation实现等)

基于总线设备模型

01_all_series_quickstart
|----| 05_嵌入式 Linux 驱动开发基础知识\source
|----| |----| 02_led_drv\04_led_drv_template_bus_dev_drv

基于设备树

01_all_series_quickstart
|----| 05_嵌入式 Linux 驱动开发基础知识\source
|----| |----| 02_led_drv\05_led_drv_template_device_tree

编写代码

代码地址: git clone https://gitee.com/runluo/Linux_QT_LED_Demo.git
首先设计UI,QT Create会自动转化为cpp文件,然后再加入 你自己的业务逻辑 到 QT项目中。
我很简单的画了一个界面用来控制LED灯的亮灭
Linux驱动-基于QT控制LED灯,Linux驱动,linux,qt

在工程项目中添加一个名为 led 的类,新增 led.c 和 led.h 文件

Linux驱动-基于QT控制LED灯,Linux驱动,linux,qt
这里有一个问题就是驱动程序使用 C 语言,而在UI中是 CPP 语言,我们要有方法来将C函数嵌入到CPP语言中。

首先看led.h中,使用extern “C” {C文件头}
Linux驱动-基于QT控制LED灯,Linux驱动,linux,qt
再看在led.c中,在C语言的前面加上 ::
Linux驱动-基于QT控制LED灯,Linux驱动,linux,qt
UI中的业务逻辑
当点击 RatioButton 后,LED灯亮灭
在槽函数中,调用我们之前创建 Led 类中的函数,进而通过ioctl 来调用驱动程序。
Linux驱动-基于QT控制LED灯,Linux驱动,linux,qt
这个小Demo搭起来之后,其实可以继续完善,做出很多好玩的初学Demo。

测试

在板子上安装LED驱动程序后,执行应用程序即可
insmod led_driver.ko
./TEST
点击UI界面可以看到板子上的LED0灯有亮灭文章来源地址https://www.toymoban.com/news/detail-647536.html

到了这里,关于Linux驱动-基于QT控制LED灯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux 驱动篇(二)】LED 驱动开发

    Linux 下的任何外设驱动,最终都是要配置相应的硬件寄存器。所以本章的 LED 灯驱动最终也是对 I.MX6ULL 的 IO 口进行配置,与裸机实验不同的是,在 Linux 下编写驱动要符合 Linux 的驱动框架。I.MX6U-ALPHA 开发板上的 LED 连接到 I.MX6ULL 的 GPIO1_IO03 这个引脚上,因此本章实验的重点就

    2024年02月12日
    浏览(59)
  • linux LPT和COM回路测试(基于python+Qt+C++)

    软件UI: 回路治具(COM+LPT): lpt_test.cpp(c++ 源代码):

    2024年01月21日
    浏览(40)
  • 基于Qt5开发图形界面——WiringPi调用Linux单板电脑IO

    Qt是一种跨平台的应用程序开发框架。它被广泛应用于图形用户界面(GUI)开发,可以用于构建桌面应用程序、移动应用程序和嵌入式应用程序。Qt提供了丰富的功能和工具,使开发人员可以快速、高效地构建各种类型的应用程序。 下面是一些Qt的主要特点和优势: 跨平台性

    2024年02月10日
    浏览(43)
  • Linux下LED设备驱动开发(LED灯实现闪烁)

    前面我们介绍了Linux设备模型、平台设备驱动、设备树(device tree)、GPIO子系统以及pinctrl子系统等,大家看这篇文章之前需要提前知道的基础都在这篇文章中: Linux设备模型、平台设备驱动、设备树(device tree)、GPIO子系统以及pinctrl子系统介绍 有部分函数没有涉及到的最后会讲解

    2024年02月17日
    浏览(43)
  • Linux -- 字符设备驱动--LED的驱动开发(初级框架)

    看原理图确定引脚,确定引脚输出什么电平才能点亮 / 熄灭 LED 看主芯片手册,确定寄存器操作方法:哪些寄存器?哪些位?地址是? 编写驱动:先写框架,再写硬件操作的代码 注意 :在芯片手册中确定的寄存器地址被称为 物理地址 ,在 Linux 内核中无法直接使用。 需要使

    2024年04月28日
    浏览(32)
  • [Linux_IMX6ULL驱动开发]-LED驱动

    其实在本人的理解看来,在驱动上面操控LED,和使用STM32在操控LED是大同小异的,因为本质都是控制引脚的输出电平,来达到点亮或者熄灭LED的作用,在这里,我们想要操控LED,我们首先要先清除它的原理图是什么样的。 如上图所示可知,想要点亮LED,那么我们需要控制引脚

    2024年04月14日
    浏览(34)
  • Linux 驱动开发基础知识——认识LED驱动程序 (二)

     个人名片: 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755@qq.com 🦉个人WeChat:Vir2021GKBS 🐼 本文由妄北y原创,首发CSDN 🎊🎊🎊 🐨座右铭:大多数人想要改造这个世界,但却罕有人想改造自己。 专栏导

    2024年01月21日
    浏览(38)
  • 【基于深度学习的人脸识别】(Dlib+ResNet残差神经网络)——QT(C++)+Linux

    dlib_face_recognition_resnet_model_v1.dat 是基于深度学习的人脸识别模型,是dlib库中的一个重要组件。该模型的原理涉及到深度卷积神经网络(DCNN)和具体的人脸识别算法。 dlib 人脸识别采用了 Resnet 残差神经网络,识别精度高于普通神经网络,同样我们可以到官网去下载训练好的模

    2024年04月23日
    浏览(46)
  • 笔记:linux中LED驱动设备树配置和用法

    设备树中的LED驱动一般是这样写,LED驱动可以控制GPIO的电平变化,生成文件节点很方便 compatible = \\\"gpio-leds\\\"; 对应了驱动中 drivers/leds/leds-gpio.c这个驱动文件 label = \\\"gpio_demo\\\"; 这个名字会在文件系统中生成对应的设备节点 /sys/class/leds/gpio_demo linux,default-trigger = \\\"default-off\\\"; 指的是

    2024年02月10日
    浏览(40)
  • Linux学习第30天:Linux 自带的 LED 灯驱动实验:驱动开发思维方式的转变势在必行

    Linux版本号4.1.15   芯片I.MX6ULL                                      大叔学Linux    品人间百味  思文短情长            学习嵌入式Linux驱动开发整整30天了。今天简单做一个小结。因为之前的主要工作是做ARM的裸机开发,所以接触Linux以后感觉很多东西都变了。不仅仅

    2024年02月05日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包