imx6ull开发板之qt应用编程读取AP3216c(光照,距离)数据。

imx6ull开发板之qt应用编程读取光照,距离数据。

  • 一.效果展示
  • 一.搭建QT环境
  • 二.Qt编程
    • 2.1 mainwindows.h文件
    • 2.2 mainwindow.cpp
  • 三.在Linux平台下交叉编译
    • 3.1 将生成文件拷贝到linux下
    • 3.2 在linux平台下编译程序
  • 四.开发板运行编译好的qt程序

一.效果展示

在这里插入图片描述

一.搭建QT环境

首先你的开发板需要QT的文件系统,这样才能支持qt程序。在这个背景下才能进行下面的操作。如果没有此背景,自行去查找资料,完成此步。注意:我这里使用的是百问网的imx6ull开发板。

二.Qt编程

这里是在windows平台下进行开发的。这里的命令可以参考博主的上一篇文章。

2.1 mainwindows.h文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <string.h>
#include <QProcess>
#include <QDebug>
#include <QString>
#include <QMainWindow>
#include <QTimer>
#include <QPushButton>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();public slots:void handleTimeout();//定时器处理函数void light_Clicked(); //按钮点击函数
private:Ui::MainWindow *ui;void ap3216c_init(void); //初始化ap3216void read_light(void);  // 读光照void read_distance(void); //读距离QTimer *m_pTimer;    //定时器QPushButton *button_light; //按钮};
#endif // MAINWINDOW_H

2.2 mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <stdio.h>
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);ap3216c_init();//初始化m_pTimer=new QTimer(this);//关联槽函数connect(m_pTimer, SIGNAL(timeout()), this, SLOT(handleTimeout()));connect(button_light,SIGNAL(clicked()),this,SLOT(light_Clicked()));//设置定时时间m_pTimer->start(1000);//按钮设置button_light=new QPushButton("开灯",this);button_light->setGeometry(300,200,80,40);}
void MainWindow::light_Clicked()
{if(button_light->text()=="开灯"){button_light->setText("关灯");}else if(button_light->text()=="关灯"){button_light->setText("开灯");}}
//1s读一次传感器
void MainWindow::handleTimeout()
{read_light();read_distance();
}
MainWindow::~MainWindow()
{delete ui;
}
void MainWindow::read_light()
{QProcess p;QByteArray G1;QString cmd="i2cget -f -y 0 0x1e 0xc w";p.start("bash",QStringList()<<"-c"<<cmd);p.waitForFinished(); //等待Linux指令执行完成QString result = p.readAllStandardOutput(); //把执行Linux指令后的字符串结果保存下来QString Data=result.mid(2,4);ui->light->setText(QString::number(Data.toInt(),10));//G1=Data.toUtf8().toHex();}
void  MainWindow::read_distance()
{QProcess p;QByteArray G1;QString cmd="i2cget -f -y 0 0x1e 0xe w";p.start("bash",QStringList()<<"-c"<<cmd);p.waitForFinished(); //等待Linux指令执行完成QString result = p.readAllStandardOutput(); //把执行Linux指令后的字符串结果保存下来//去除0xQString Data=result.mid(2,4);ui->distance->setText(QString::number(((Data.toInt()&0x3f00)<<4)|(Data.toInt()&0x000f),10));}
void MainWindow::ap3216c_init(void)
{QProcess p;QString Cmd_reset = "i2cset -f -y 0 0x1e 0 0x4"; //复位QString Cmd_enable ="i2cset -f -y 0 0x1e 0 0x3"; //使能p.start("bash",QStringList()<<"-c"<<Cmd_reset);p.waitForFinished();p.start("bash",QStringList()<<"-c"<<Cmd_enable); //执行Linux指令p.waitForFinished();}

三.在Linux平台下交叉编译

3.1 将生成文件拷贝到linux下

我们运行程序后会生成2个目录,我们只需要将my_pro拷贝到linux平台下即可
在这里插入图片描述

3.2 在linux平台下编译程序

我们在linux下用Qt打开刚才拷贝的文件夹,点击Build即可。
在这里插入图片描述
运行之后会生成一个build目录,如图第二个
在这里插入图片描述
我们进入此目录后,将my_pro文件拷贝到开发板即可。
在这里插入图片描述

四.开发板运行编译好的qt程序

我们首先给此文件具有可执行权限
在这里插入图片描述
这步之后直接运行即可,如图
在这里插入图片描述
这样开发板就跑起来了我们的qt程序,如图:
在这里插入图片描述

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

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

相关文章

R语言的计量经济学实践技术应用

计量经济学通常使用较小样本&#xff0c;但这种区别日渐模糊&#xff0c;机器学习在经济学领域、特别是经济学与其它学科的交叉领域表现日益突出&#xff0c;R语言是用于统计建模的主流计算机语言&#xff0c;在本次培训中&#xff0c;我们将从实际应用出发&#xff0c;重点从数…

即时编译jit和xbyak的基本使用介绍

一般来说&#xff0c;解释型编程语言都是依靠自身运行的虚拟机&#xff0c;在解释程序。有时候语言为了提高运行速度&#xff0c;不会去直接解释程序文本&#xff0c;而是模拟cpu执行方式&#xff0c;将文本代码执行一次翻译&#xff0c;翻译为类似cpu执行的汇编语言去执行。有…

【vue3】实现数据响应式(ref、shallowRef、trigger、reactive、shallowReactive、toRef、toRefs)

一、ref、shallowRef、trigger ref支持所有类型 可以粗略理解为 ref shallowRef triggerRef 1、通过ref获取dom元素 <p ref"_ref">这是ref获取dom元素</p>import {ref,shallowRef, triggerRef} from vueconst _ref ref()console.log(_ref.value?.i…

【HTML】web worker

Web Worker是HTML5中的一项技术&#xff0c;可以在后台运行JavaScript代码&#xff0c;以提高Web应用程序的性能并改善用户体验。它允许在独立的线程中执行耗时的操作&#xff0c;而不会阻塞主线程。 主线程是浏览器用来渲染页面、处理用户交互和执行JavaScript代码的线程。然…

QT基础 QChart绘制折线

目录 1.简单折线 2.数学折线 3.可滑动折线 1.简单折线 //![1] //! 折现段坐标QLineSeries *series new QLineSeries(); //![1]//![2] //! 添加点series->append(0, 6);series->append(2, 4);series->append(3, 8);series->append(7, 4);series->append(10, 5)…

Keil 厂商DFP pack实现原理

要想在Keil中方便地通过界面点击来导入芯片厂商提供的库&#xff0c;通常需要安装厂商提供的pack&#xff0c;如下图&#xff1a; 这个过程是如何实现的&#xff1f; 双击安装pack后&#xff0c;pack文件会将自身的内容解压到下图的目录&#xff0c;命名为厂商名字的文件夹&…

Kubernetes新增节点

1. K8S节点Hosts及防火墙设置 node3节点进行如下配置&#xff1a; #添加hosts解析&#xff1b; cat >/etc/hosts<<EOF 127.0.0.1 localhost localhost.localdomain 192.168.1.146 master1 192.168.1.147 node3 EOF #临时关闭selinux和防火墙&#xff1b; sed -i /SE…

canvas基础2 -- 形状

七巧板 七巧板本质上就是 分别由几个直线 拼成一个个图形&#xff0c;再将这些图形结合起来 var tangram [{ p: [{ x: 0, y: 0 }, { x: 800, y: 0 }, { x: 400, y: 400 }], color: "#caff67" },{ p: [{ x: 0, y: 0 }, { x: 400, y: 400 }, { x: 0, y: 800 }], col…

AlphaPose Pytorch 代码详解(一):predict

前言 代码地址&#xff1a;AlphaPose-Pytorch版 本文以图像 1.jpg&#xff08;854x480&#xff09;为例对整个预测过程的各个细节进行解读并记录 python demo.py --indir examples/demo --outdir examples/res --save_img1. YOLO 1.1 图像预处理 cv2读取BGR图像 img [480,…

Redis 的过期键 | Navicat 技术干货

Redis 是一种高性能的内存数据存储&#xff0c;以其速度和多功能性而闻名。其中一个有用的特性是为键设置过期时间的功能。在 Redis 中&#xff0c;为键设置过期时间对于管理数据和确保过时或临时数据自动从数据库中删除是至关重要的。在本文中&#xff0c;我们将探讨在 redis-…

4、在 CentOS 8 系统上安装 pgAdmin 4

pgAdmin 4 是一个开源的数据库管理工具&#xff0c;专门用于管理和操作 PostgreSQL 数据库系统。它提供了一个图形用户界面&#xff08;GUI&#xff09;&#xff0c;使用户能够轻松地连接到 PostgreSQL 数据库实例&#xff0c;执行 SQL 查询&#xff0c;管理数据库对象&#xf…

STM32物联网基于ZigBee智能家居控制系统

实践制作DIY- GC0169-ZigBee智能家居 一、功能说明&#xff1a; 基于STM32单片机设计-ZigBee智能家居 二、功能介绍&#xff1a; 1个主机显示板&#xff1a;STM32F103C最小系统ZigBee无线模块OLED显示器 语音识别模块多个按键ESP8266-WIFI模块&#xff08;仅WIFI版本有&…