Qt/QML编程学习之心得:Linux下读写GPIO(23)

在linux嵌入式系统中,经常需要一些底层操作,Linux就如window一样,也对底层BSP进行了封装,对device driver进行了封装,使用的话基本就是文件读写的方式来读取,所以也大大简化了上层应用对底层硬件的访问难度。

比如要对GPIO口进行访问,在Qt中有几种方法:

使用命令行方式访问:

#include <sys/un.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <linux/types.h>
#include <linux/netlink.h>void visitGPIO(string sysCMD)
{FILE * ptr;if((ptr=popen(sysCMD, "r"))!=NULL){rewind(ptr);fread(bufData, 256,1, ptr);// XXX,对数据进行处理pclose(ptr);
}

直接执行方式访问:

用户空间可通过sysfs访问控制GPIO:

# echo 11 > /sys/class/gpio/export      执行此命令会在gpio/下生成gpio11目录
# echo out > gpio11/direction            设置GPIO11方向为输出
# echo 1 > gpio11/value                   设置GPIO11为高电平
# echo 0 > gpio11/value                   设置GPIO11为低电平
# echo 11 &

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/609057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos7 手动更改系统时间

文章目录 1.更改系统时间2.写入系统时间3.查看是否写入成功 1.更改系统时间 date -s "2017-12-18 09:40:00"2.写入系统时间 hwclock -w3.查看是否写入成功 timedatectl

初识硬件之三极管

1 什么是三极管 概述 三极管全称是“晶体三极管”&#xff0c;也被称作“晶体管”&#xff0c;是一种具有放大功能的半导体器件。通常指本征半导体三极管&#xff0c;即BJT管。 三极管封装 有插件和贴片之分 如下图左一和左二就是插件形式&#xff0c;上面的金属片和洞孔是…

服务器中了DevicData勒索病毒怎么处理

DevicData勒索病毒是最近一段时间非常流行的勒索病毒类型&#xff0c;有很多企业都不幸中招&#xff0c;给生产和经营带来了很大的影响。所以云天数据恢复中心决定就这种类型的勒索病毒&#xff0c;来和各位讲讲当服务器中了DevicData勒索病毒怎么处理。 特征 1&#xff0c;文件…

位运算相关

简单&#xff1a; 191. 位1的个数-CSDN博客 67. 二进制求和-CSDN博客 190. 颠倒二进制位-CSDN博客 136. 只出现一次的数字-CSDN博客 中等&#xff1a;

【C语言题解】 | 101. 对称二叉树

101. 对称二叉树 101. 对称二叉树代码 101. 对称二叉树 这个题目要求判断该二叉树是否为对称二叉树&#xff0c;此题与上一题&#xff0c;即 100. 相同的树 这个题有异曲同工之妙&#xff0c;故此题可借鉴上题。 我们先传入需要判断二叉树的根节点&#xff0c;通过isSameTree()…

vue 工作记录登录后的一些好方法

//记住要跳转的地址 function handleLogin() { loginFormRef.value.validate((valid: boolean) > { if (valid) { loading.value true; userStore .login(loginData.value) .then(() > { const query: LocationQuery route.query; const redirect (query.redirect as…

logrus 打印日志时间注意事项

问题描述 程序运行中打印时间 和 logrus打印日志时间 差距十几分钟 go 日志打印处 log_init.LogIcmp.Info("Current time") 日志打印结果 {"func":"main.main","level":"info","msg":"Current time",…

EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测

EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测 目录 EI级 | Matlab实现VMD-TCN-GRU变分模态分解结合时间卷积门控循环单元多变量光伏功率时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.【EI级】Matlab实现…

C# 强制类型转换和as区别和不同使用场景

文章目录 1.强制类型转换2. as 运算符3.实例总结&#xff1a; 在C#中&#xff0c;as 和 强制类型转换&#xff08;例如 (T)value&#xff09;的主要区别在于它们处理类型转换不成功时的行为和适用场景&#xff1a; 1.强制类型转换 使用语法&#xff1a;Type variable (Type)…

Python基础知识:整理7 字典的定义及其相关操作

1 字典的定义 # 1. 字典的定义 # 定义字典的字面量 # {key: value, key: value, ......, key: value}# 定义字典变量 # my_dict {key: value, key: value, ......, key: value}# 定义空字典 # my_dict {} # my_dict dict()定义重复Key的字典 my_dict1 {"张三": …

基于JavaWeb+SSM+Vue四六级词汇微信小程序系统的设计和实现

基于JavaWebSSMVue四六级词汇微信小程序系统的设计和实现 源码获取入口KaiTi 报告Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 KaiTi 报告 &#xff08;1&#xff09;课题背景 伴随着社会的快速发展, 现代社…

sql查看指定时间段的数据

要查看指定时间段的数据&#xff0c;您可以使用SQL中的WHERE子句来过滤日期或时间列&#xff0c;以仅选择在指定时间段内的行。以下是一个示例查询&#xff0c;假设您有一个名为table_name的表&#xff0c;其中包含一个名为date_column的日期列&#xff1a; SELECT * FROM tab…

海康威视校园招聘笔试题

1、10、10、4、4四个数&#xff0c;怎么算出24点&#xff1f;(10*10-4)/424 2、下列表达式在32位机器编译环境下的值&#xff08;&#xff09; [cpp] view plaincopyprint? class A { }; class B { public: B(); virtual ~B(); }; class C { private…

LINUX常见问题之oom kill

一、OOM含义 OOM(Out Of Memory)机制为Linux内核中一种自我保护机制&#xff0c;当系统分配不出内存时(触发条件)会触发这个机制&#xff0c;由系统在已有进程中挑选一个占用内存较多&#xff0c;回收内存收益最大的进程杀掉来释放内存。 Linux下允许程序申请比系统可用内存更…

2024年杭州电子科技大学843信号与系统考研大纲,真题,参考书,杭电843,信息与通信

杭电 杭州电子科技大学843考研信号与系统大纲&#xff0c;真题&#xff0c;参考书&#xff0c;博睿泽信息通信考研论坛。 杭州电子科技大学 全国硕士研究生招生考试业务课考试大纲 考试科目名称&#xff1a;信号与系统 科目代码&#xff1a;843 一、信号与系统概述 1、掌握连续…

Nginx location 配置 - Part 2

接上文 链接: Nginx 简介和入门 - part1 上文 我们简单地在 nginx 创建了3个虚拟主机&#xff0c; 虽然这个3个主机都是用占用80端口 但是我们可以用不同的域名来实现区分访问3台虚拟主机。 但是&#xff0c; 实际项目上&#xff0c; 我们更加多地会使用location 配置而不是…

机器学习-线性回归实践

目标&#xff1a;使用Sklearn、numpy模块实现展现数据预处理、线性拟合、得到拟合模型&#xff0c;展现预测值与目标值&#xff0c;展现梯度下降&#xff1b; 一、导入模块 import numpy as np np.set_printoptions(precision2) from sklearn.linear_model import LinearRegr…

JVM主要的几种垃圾回收算法

1、Java 为什么要实现自动内存管理 &#xff1f; 简化开发过程&#xff1a;通过内存自动管理可以避免手动分配和释放内存的麻烦&#xff0c;减少了内存泄漏和内存错误的风险&#xff0c;让研发能更专注于业务逻辑&#xff0c;不必纠结于内存管理的细节。 提高开发效率&#xff…

vite 搭建vue3 TS项目初始框架

目录 仓库地址&#xff1a; 一.搭建项目 1.安装 Vite&#xff1a; 2.创建 Vue 3 项目&#xff1a; 3.进入项目目录&#xff1a; 4.安装依赖&#xff1a; 5.运行项目&#xff1a; 6.流程实操 二.修改项目结构&#xff0c;显示自定义的页面 1.整理静态样式文件 1.1.在 sr…

Dell 机架式服务器 - 高级定制服务

Dell 机架式服务器 - 高级定制服务 1. Dell Technologies2. 机架式服务器 - 高级定制服务2.1. Servers & Storage (服务器及存储) -> Servers2.2. Rack Servers (机架式服务器)2.3. Shop2.4. PowerEdge Rack Servers (PowerEdge 机架式服务器)2.5. PowerEdge R760 Rack …