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

Qt读写sysfs

本文介绍Qt读写sysfs。

在嵌入式Linux系统上开发Qt应用程序,经常会涉及到外设的控制,比如GPIO,PWM的控制,Linux环境下可以像操作文件一样操作它们,这通常会涉及到sysfs的读写。本文以读写GPIO为例,简要介绍下如何使用Qt读写sysfs。

1.配置

Linux命令行指令(这里导出gpio5):

echo 5 > /sys/class/gpio/export

在Qt应用程序中,可以启动一个进程来执行上述指令,使用QProcess提供的静态函数来完成,参考代码如下:

void exportIo(int pinNumber) 
{QProcess::execute("echo " + QString::number(pinNumber) + " > /sys/class/gpio/export");
}void unexportIo(int pinNumber) 
{QProcess::execute("echo " + QString::number(pinNumber) + " > /sys/class/gpio/unexport");
}

2.写sysfs

Linux命令行指令(这里对gpio5写1):

echo 1 > /sys/class/gpio/gpio5/value

参考代码如下:

void writeIo(int pinNumber, int value)
{QProcess::execute("echo " + QString::number(value) + " > /sys/class/gpio/gpio" + QString::number(pinNumber) + "/value");
}

3.读sysfs

Linux命令行指令:

cat /sys/class/gpio/gpio5/value

参考代码如下:

int readIo(int pinNumber)
{QProcess process;int value = 0;process.start("cat", QStringList() << "/sys/class/gpio/gpio" + QString::number(pinNumber) + "/value");process.waitForFinished();value = process.readAll().trimmed().toInt();return value;
}

这里是阻塞的方式执行的。如果读时间较长,也可以绑定finish信号,参考代码如下:

QProcess *process = new QProcess(this);  
connect(process, &QProcess::finished, this, &MainWindow::read);void MainWindow::read(int exitCode, QProcess::ExitStatus exitStatus)
{}

注意

不同的嵌入式Linux环境下外设的sysfs的路径和操作方法可能不一样,需根据实际情况修改。

总结,本文介绍了Qt读写sysfs。

http://www.lryc.cn/news/421526.html

相关文章:

  • 实景三维:解锁地理信息新维度,引领未来城市智慧之钥
  • 汽车免拆诊断案例 | 2010款劳斯莱斯古斯特车中央信息显示屏提示传动系统故障
  • 监督学习和无监督学习是什么?
  • YII2的errorHandler.errorAction失效原因
  • 已知p指向双向循环链表中的一个结点,其结点结构为data、prior、next三个域,写出算法change(p),交换p所指向的结点和它的前缀结点的顺序。
  • 什么是Tensor???为什么人工智能领域论文中经常出现这个名词
  • 爬虫练习_01
  • Datawhale X 魔搭 AI夏令营第四期 魔搭-AIGC方向 task02笔记
  • 多模态大语言模型的免训练视觉提示学习 ControlMLLM
  • Oracle|DM 常用|不常用 SQL大口袋
  • 嵌入式软件--模电基础 DAY 1
  • 【Nacos无压力源码领读】(二) 集成 LoadBalancer 与 OpenFeign
  • 《投资的原理》阅读笔记二——价值投资真是王者吗?
  • SSH、FTP、SFTP相关协议详解
  • C语言进阶——一文带你深度了解“C语言关键字”(中篇6)
  • 自建极简Ethercat主站-第8章 FOE基础功能实现
  • SQL Zoo 8.Using Null
  • LeetCode274. H 指数
  • 概述:Dubbo、Nacos、 Zookeeper 等分布式服务协调与治理等技术
  • 【LINUX】小工具降耦合,全内核函数插入宏摸索测试中。。
  • 24/8/12算法笔记 复习_线性回归
  • Linux系统驱动(十四)输入子系统
  • 力扣(2024.08.12)
  • 最新版的AutoGPT,我搭建好了
  • [SWPUCTF 2021 新生赛]PseudoProtocols(构造伪协议)
  • 基于STM32开发的智能语音助手系统
  • 基于python的图像去雾算法研究系统设计与实现
  • 自定义 View 可以播放一段视频
  • LVS负载均衡集群部署之—NAT模式的介绍及搭建步骤
  • 【算法】浅析哈希算法【附代码示例】