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

【QT】-一文说清楚QT定时器怎么用

在 Qt 中,定时器(QTimer)是用来定时执行某些任务的非常有用的类。它可以帮助你在指定的时间间隔后重复执行某个函数。常见的用法是启动一个定时器,每过一段时间自动执行某个操作,比如更新 UI、检查状态或发送数据等。

基本使用方法

  1. QTimer的基本概念
    定时器的启动:QTimer 使用 start() 方法来启动,并指定一个时间间隔(单位:毫秒)。可以设定定时器是否循环。
    定时器超时信号:当定时器时间间隔到达时,会发出 timeout() 信号,你可以连接这个信号到一个槽函数来处理事件。
    示例:使用 QTimer 来实现简单的定时任务
    示例 1:基本定时器
cpp
#include <QCoreApplication>
#include <QTimer>
#include <QDebug>class MyObject : public QObject
{Q_OBJECTpublic:MyObject(){// 创建一个定时器QTimer *timer = new QTimer(this);// 设置定时器每1000毫秒触发一次timer->start(1000);// 连接定时器的超时信号到我们的槽函数connect(timer, &QTimer::timeout, this, &MyObject::onTimeout);}private slots:void onTimeout(){qDebug() << "定时器超时!";}
};int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);MyObject obj;return a.exec();
}

代码说明:

创建了一个 QTimer 对象 timer,设置它每 1000 毫秒(1秒)触发一次。
使用 connect 将 timeout() 信号连接到槽函数 onTimeout(),这样每当定时器触发时,就会调用 onTimeout()。
在 onTimeout() 中,我们用 qDebug() 输出一个消息来表示定时器超时。
运行结果:


定时器超时!
定时器超时!
定时器超时!


示例 2:定时器停止和重新启动
你还可以控制定时器停止和重新启动。


> #include <QCoreApplication>
> #include <QTimer>
> #include <QDebug>
> 
> class MyObject : public QObject {
>     Q_OBJECT
> 
> public:
>     MyObject()
>     {
>         // 创建一个定时器
>         QTimer *timer = new QTimer(this);
> 
>         // 设置定时器每1000毫秒触发一次
>         timer->start(1000);
> 
>         // 连接定时器的超时信号到我们的槽函数
>         connect(timer, &QTimer::timeout, this, &MyObject::onTimeout);
> 
>         // 停止定时器
>         connect(this, &MyObject::stopTimer, timer, &QTimer::stop);
>     }
> 
> private slots:
>     void onTimeout()
>     {
>         static int count = 0;
>         count++;
>         qDebug() << "定时器超时:" << count;
> 
>         if (count == 5) {
>             emit stopTimer();
>             qDebug() << "定时器已停止";
>         }
>     }
> 
> signals:
>     void stopTimer(); };
> 
> int main(int argc, char *argv[]) {
>     QCoreApplication a(argc, argv);
> 
>     MyObject obj;
> 
>     return a.exec(); }

代码说明:

在 onTimeout() 中,计数器每次触发时增加。如果触发次数达到 5 次,发送 stopTimer 信号来停止定时器。
这里演示了如何在定时器运行一段时间后停止它。
运行结果:

定时器超时: 1
定时器超时: 2
定时器超时: 3
定时器超时: 4
定时器超时: 5

定时器已停止
示例 3:定时器与 GUI 线程
QTimer 也可以用于 GUI 程序中,通常用于定时更新界面元素。需要注意的是,如果你想在 GUI 中使用定时器,确保你的槽函数执行时不会阻塞 UI 线程。

cpp
#include <QApplication>
#include <QWidget>
#include <QTimer>
#include <QLabel>class MyWidget : public QWidget
{Q_OBJECTpublic:MyWidget(){label = new QLabel("Hello", this);label->setGeometry(50, 50, 100, 30);// 创建定时器QTimer *timer = new QTimer(this);timer->start(1000);// 连接定时器超时信号到槽函数connect(timer, &QTimer::timeout, this, &MyWidget::onTimeout);}private slots:void onTimeout(){static int count = 0;count++;label->setText(QString("Time: %1").arg(count));}private:QLabel *label;
};int main(int argc, char *argv[])
{QApplication a(argc, argv);MyWidget w;w.show();return a.exec();
}

代码说明:

在 GUI 程序中,我们使用 QTimer 每秒更新时间,更新一个标签的文本。
每秒定时更新标签显示的时间,直到应用程序关闭。
注意事项
定时器的线程问题:QTimer 默认是在主线程中运行的。如果你在子线程中使用定时器,确保定时器的信号连接到正确的槽函数。

定时器的停止:如果不再需要定时器,可以使用 stop() 方法停止它。否则,它会继续运行直到被显式停止。

定时器间隔过短:不要设置过短的定时器间隔,否则可能会导致系统性能问题。通常在需要周期性操作时,设定合理的时间间隔(例如 100ms 或更长)。

多次调用定时器:如果你希望定时器每次触发后都自动重新启动,可以使用 QTimer::singleShot() 或者在槽函数中重新启动定时器。

总结
QTimer 是 Qt 中一个非常实用的类,用来执行定时任务。你可以通过 start() 启动定时器,并通过连接 timeout() 信号来触发任务。记得要合理管理定时器的生命周期,确保不会在不需要时继续运行,避免资源浪费。

相关文章:

【QT】-一文说清楚QT定时器怎么用

在 Qt 中&#xff0c;定时器&#xff08;QTimer&#xff09;是用来定时执行某些任务的非常有用的类。它可以帮助你在指定的时间间隔后重复执行某个函数。常见的用法是启动一个定时器&#xff0c;每过一段时间自动执行某个操作&#xff0c;比如更新 UI、检查状态或发送数据等。 …...

QT编程之JSON处理

一、核心类库及功能 Qt 提供了一套完整的 JSON 处理类库&#xff08;位于 QtCore 模块&#xff09;&#xff0c;支持解析和生成 JSON 数据&#xff1a; ‌QJsonDocument‌&#xff1a;表示完整的 JSON 文档&#xff0c;支持从 QJsonObject 或 QJsonArray 初始化‌。‌QJsonOb…...

优选算法系列(1.双指针_下)

目录 五. 有效三角形的个数&#xff08;medium&#xff09; 题目链接&#xff1a;有效三角形的个数 解法: 代码&#xff1a; 六&#xff1a;和为 s 的两个数字&#xff08;easy&#xff09; 题目链接&#xff1a;和为 s 的两个数字 解法&#xff1a; 代码; 七&#xf…...

江科大51单片机笔记【15】直流电机驱动(PWM)

写在前言 此为博主自学江科大51单片机&#xff08;B站&#xff09;的笔记&#xff0c;方便后续重温知识 在后面的章节中&#xff0c;为了防止篇幅过长和易于查找&#xff0c;我把一个小节分成两部分来发&#xff0c;上章节主要是关于本节课的硬件介绍、电路图、原理图等理论…...

MS51FB9AE单片机解密实践与解析

MS51FB9AE 单片机解密实践与解析 在电子技术领域&#xff0c;MS51FB9AE 作为一款基于 8051 内核的单片机&#xff0c;凭借其强大功能与良好性能&#xff0c;在家用电器、智能仪表等诸多领域广泛应用&#xff0c;深受市场青睐。然而&#xff0c;厂家所采用的独特加密技术&#x…...

java 手搓一个http工具类请求传body

import java.io.*; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets;public class HttpUtil {/*** JSON请求发起*/public static String httpJsonRequest(String requestUrl, String requestJson) {String responseJson &…...

从零搭建微服务项目Pro(第2-2章——JSR303自定义文件校验+整合至微服务公共模块)

前言&#xff1a; JSR 303&#xff0c;即 Bean Validation&#xff0c;是 Java EE 6 中的一项子规范&#xff0c;旨在为 Java Bean 提供一种标准化的数据验证机制。它通过注解的方式&#xff0c;允许开发者在 Java 类的字段或方法上直接定义验证规则&#xff0c;从而将验证逻辑…...

Python 实现大文件的高并发下载

项目背景 基于一个 scrapy-redis 搭建的分布式系统&#xff0c;所有item都通过重写 pipeline 存储到 redis 的 list 中。这里我通过代码演示如何基于线程池 协程实现对 item 的中文件下载。 Item 结构 目的是为了下载 item 中 attachments 保存的附件内容。 {"crawl_tim…...

【论文笔记】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)

文章目录 问题创新网络主要贡献Autoencoder-like Dehazing NetworkAdaptive Mixup for Feature PreservingDynamic Feature Enhancement1. 可变形卷积的使用2. 扩展感受野3. 减少网格伪影4. 融合空间结构信息 Contrastive Regularization1. 核心思想2. 正样本对和负样本对的构建…...

Java vs Go:SaaS 系统架构选型解析与最佳实践

在构建 SaaS&#xff08;Software as a Service&#xff09;系统时&#xff0c;选用合适的技术栈至关重要。Java 和 Go 是当今最受欢迎的后端开发语言之一&#xff0c;各自有其优势和适用场景。那么&#xff0c;SaaS 系统开发应该选择 Java 还是 Go&#xff1f;本文将从多个维度…...

OpenEuler-22.03-LTS上利用Ansible轻松部署MySQL 5.7

一、需求 使用ansible自动化部署mysql二进制部署mysql部署mysql并创建JDBC用户 二、环境信息 本文涉及的代码&#xff0c;配置文件地址&#xff1a; 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;1g6y 软件名称版本备注Ansible2.9.27All modules — Ansible Doc…...

vscode编译器的一些使用问题

目录 解决pip不可用问题 检查VSCode的终端配置 解决pip不可用问题 eg&#xff1a; C:\Users\student>pip pip 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 先找到系统环境变量 高级->环境变量 系统属性->Path 变量名随意&#xff0c;自己后续知道…...

解决Windows版Redis无法远程连接的问题

&#x1f31f; 解决Windows版Redis无法远程连接的问题 在Windows系统下使用Redis时&#xff0c;很多用户会遇到无法远程连接的问题。尤其是在配置了Redis并尝试通过工具如RedisDesktopManager连接时&#xff0c;可能会报错“Cannot connect to ‘redisconnection’”。今天&am…...

MFC中使用Create或CreateDialog创建对话框失败,GetLastError错误码为1813(找不到映像文件中指定的资源类型)

文章目录 创建对话框失败示例、原因分析及解决方案示例代码错误原因解决方案 AFX_MANAGE_STATE(AfxGetStaticModuleState())作用一、功能1. 模块状态切换2. 自动状态恢复 二、为什么要用该函数&#xff1f;三、必须使用该宏的典型场景1. MFC 扩展 DLL&#xff08;Extension DLL…...

std::invoke详解

基础介绍 c17版本引入了std::invoke特性&#xff0c;这是一个通用的调用包装器&#xff0c;可以统一调用&#xff1a; 普通函数成员函数函数对象Lambda表达式指向成员的指针 它的主要作用是提供一个统一的方式来调用各种可调用对象。 std::invoke依赖的头文件&#xff1a;#…...

【Rust】枚举和模式匹配——Rust语言基础14

文章目录 1. 枚举类型1.2. Option 枚举 2. match 控制流结构2.1. match 对绑定值的匹配2.2. Option<T> 的匹配2.3. 通配模式以及 _ 占位符 3. if let 控制流4. 小测试 1. 枚举类型 枚举&#xff08;enumerations&#xff09;&#xff0c;也被称作 enums。枚举允许你通过…...

视频理解之Actionclip(论文宏观解读)

配合解读代码解读 1.研究背景 1. 视频行为识别的重要性 视频行为识别是视频理解领域的核心任务之一&#xff0c;旨在通过分析视频内容来识别和分类其中的人物行为或活动。这一任务在多个领域具有重要的应用价值&#xff0c;例如智能监控、人机交互、自动驾驶、医疗健康等。随…...

【论文精读】Deformable DETR:用于端到端目标检测可变形 Transformer

论文&#xff1a;DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION 代码&#xff1a;Deformable-DETR 摘要 DETR 最近被提出用于消除目标检测中许多手工设计组件的需求&#xff0c;同时展示了良好的性能。然而&#xff0c;它存在收敛速度慢和特征空…...

Odoo18 Http鉴权+调用后端接口

最近在调研Odoo18&#xff0c;包括它的前后端原理、源码等。发现官方的开发文档并不十分实用&#xff0c;比如标题这种简单的实用需求&#xff0c;竟然浪费了一点时间&#xff0c;特此记录。 官方文档&#xff1a;External API — Odoo 18.0 documentation 前提&#xff1a;首…...

doris:SQL 方言兼容

提示 从 2.1 版本开始&#xff0c;Doris 可以支持多种 SQL 方言&#xff0c;如 Presto、Trino、Hive、PostgreSQL、Spark、Clickhouse 等等。通过这个功能&#xff0c;用户可以直接使用对应的 SQL 方言查询 Doris 中的数据&#xff0c;方便用户将原先的业务平滑的迁移到 Doris…...

Linux红帽:RHCSA认证知识讲解(六)创建、管理和删除本地用戶和组

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;六&#xff09;创建、管理和删除本地用戶和组 前言一、用户和组概念用户类型对比表格主要组和补充组对比表格&#xff1a; 二、本地用户账户增删改查三、本地组账户 前言 上篇博客我们详细了解了从红帽和 DNF 软件仓库下载…...

【Repos系列】yum install nginx 是怎么从仓库中下载并安装的?

yum install nginx 是 YUM 包管理工具从配置的软件仓库中下载并安装软件包的核心操作。以下是其完整工作流程的详细步骤&#xff08;结合缓存机制和依赖处理&#xff09;&#xff1a; ​1. 隐式元数据同步&#xff08;若缓存过期&#xff09;​ ​检查缓存有效性&#xff1a;…...

《JavaScript高级程序设计(第5版)》学习大纲

《JavaScript高级程序设计&#xff08;第5版&#xff09;》学习大纲 《JavaScript高级程序设计&#xff08;第5版&#xff09;》是JavaScript领域的经典“红宝书”&#xff0c;它从基础语法讲到高级特性&#xff0c;还包含浏览器环境和前端工程化等内容。本书2024年12月出版&a…...

基于微信小程序开发的宠物领养平台——代码解读

项目前端 一、项目的技术架构概况 一句话概括&#xff1a;该项目是基于微信小程序开发的宠物领养平台&#xff0c;采用原生小程序框架进行用户界面的构建&#xff0c;使用 wx.request 进行 API 请求&#xff0c;并通过 getApp() 和本地存储来管理全局状态和用户信息。 一&am…...

KICK第五课:Mac 系统下安装 Xcode 或 Clang

Mac 系统下安装 Xcode 或 Clang 详细指南 一、安装前的准备 确认系统版本 macOS 10.9 及以上版本支持 Xcode 和 Clang。若版本过低&#xff0c;需先升级系统。 了解工具区别 Xcode&#xff1a;苹果官方 IDE&#xff0c;包含完整开发环境、模拟器、调试工具等&#xff0c;适合…...

PHP语法基础

PHP语法基础 一&#xff0c;变量 在PHP中&#xff0c;变量是存储数据的容器&#xff0c;其灵活性和动态类型系统是PHP的核心特性之一。以下是PHP变量的详细解析&#xff0c;涵盖声明、作用域、类型转换及最佳实践&#xff1a; 1. 变量基础 声明与命名规则 无需显式声明类型&…...

嵌入式硬件: GPIO与二极管基础知识详解

1. 前言 在嵌入式系统和硬件开发中&#xff0c;GPIO&#xff08;通用输入输出&#xff09;是至关重要的控制方式&#xff0c;而二极管作为基础电子元件&#xff0c;广泛应用于信号整流、保护电路等。本文将从基础原理出发&#xff0c;深入解析GPIO的输入输出模式&#xff0c;包…...

母婴商城系统Springboot设计与实现

项目概述 《母婴商城系统Springboot》是一款基于Springboot框架开发的母婴类电商平台&#xff0c;旨在为母婴产品提供高效、便捷的在线购物体验。该系统功能全面&#xff0c;涵盖用户管理、商品分类、商品信息、商品资讯等核心模块&#xff0c;适合母婴电商企业或个人开发者快…...

Redis相关面试题

以下是150道Redis相关面试题&#xff1a; Redis基础概念 1. Redis是什么&#xff1f; Redis是一个开源的、基于内存的高性能键值存储数据库&#xff0c;常用于缓存、消息队列等场景。 2. Redis的特点有哪些&#xff1f; • 高性能&#xff0c;读写速度快。 • 支持多种数据…...

ArcGIS助力水文分析:数据处理、地图制作与流域特征提取

在水文水环境保护中&#xff0c;对于信息的采集、处理和分析是关键步骤。水文水环境及其相关数据均具有空间分布特征&#xff0c;传统的方法难以发挥作用。地理信息系统&#xff08;GIS&#xff09;强大的空间数据管理和分析功能&#xff0c;在空间信息处理上有独到的优势&…...

docker桌面版启动redis,解决无法连接

docker run -d --name redis -p 6379:6379 -v E:\2\redis\redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf 在本地创建一个目录&#xff0c;里面有个redis.conf文件&#xff0c;内容如下&#xff0c;启动时绑定这个配置文件目…...

Vue 项目中 CDN 引入的利弊及解决方案

在Vue项目中&#xff0c;引入到工程中的所有js、css文件&#xff0c;编译时都会被打包进vendor.js&#xff0c;浏览器在加载该文件之后才能开始显示首屏。若是引入的库众多&#xff0c;那么vendor.js文件体积将会相当的大&#xff0c;影响首屏的体验。通过调试发送时间主要消耗…...

【QT】】qcustomplot的使用

1.下载并添加qcustomplot.c和qcustomplot.h文件 拖动一个Widget&#xff0c;提升为qcustomplot 成功后是这样的&#xff0c; 改第三行&#xff1a;greaterThan(QT_MAJOR_VERSION, 4): QT widgets printsupport 编译&#xff0c;不报错&#xff0c;出现带坐标轴的界面&#…...

第三周日志-web(2)

原本计划的web不是这个&#xff0c;但是b站上一个大佬讲web做到了连我都能听懂&#xff0c;不趁热打铁学一学记一记就怕忘记了 指路&#xff1a;Shiro反序列化漏洞(一)-shiro550流程分析_哔哩哔哩_bilibili khttps://www.zhihu.com/question/486555909 学模板先看看结构和功…...

KICK第四讲Linux 系统下安装 GCC 编译器全指南

Linux 系统下安装 GCC 编译器全指南 GCC&#xff08;GNU Compiler Collection&#xff09;是 Linux 系统下最常用的编译器之一&#xff0c;支持 C/C、Java 等多种编程语言。本文将介绍不同 Linux 发行版下的安装方法&#xff0c;帮助开发者快速配置开发环境。 一、使用包管理…...

SpringCloud 学习笔记1(Spring概述、工程搭建、注册中心、负载均衡、 SpringCloud LoadBalancer)

文章目录 SpringCloudSpringCloud 概述集群和分布式集群和分布式的区别和联系 微服务什么是微服务&#xff1f;分布式架构和微服务架构的区别微服务的优缺点&#xff1f;拆分微服务原则 什么是 SpringCloud &#xff1f;核心功能与组件 工程搭建父项目的 pom 文件 注册中心Rest…...

go 安装swagger

1、依赖安装&#xff1a; # 安装 swag 命令行工具 go install github.com/swaggo/swag/cmd/swaglatest# 安装 gin-swagger 和 swagger 文件的依赖 go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/files 2、测试 cmd中输入&#xff1a; swag -v 如果…...

Java中关于Optional的 orElse 操作,以及 orElse 与 orElseGet 的区别

文章目录 1. 大概说明2. 详细分析2.1 .orElse 操作2.2 .orElse 的作用&#xff1a;避免空指针异常2.3 为什么要用&#xff1f;2.4 orElseGet如何使用2.5 orElse和orElseGet的区别 1. 大概说明 这篇文章的目的是为了说明&#xff1a; orElse 如何使用orElseGet 如何使用两者的…...

Sqlmap注入工具简单解释

安装 1. 安装 Python SQLMap 是基于 Python 开发的&#xff0c;所以要先安装 Python 环境。建议安装 Python 3.9 或更高版本&#xff0c;可从 Python 官方网站 下载对应操作系统的安装包&#xff0c;然后按照安装向导完成安装。 2. 获取 SQLMap 可以从 SQLMap 的官方 GitHu…...

petalinxu 在zynq的FPGA下的ST7735S的驱动配置

spi的接线&#xff1a; 【TFT模块排针8】 【开发板spi,gpio】【antminers9】 VCC ----------- 3.3V ----------- 3.3V GND ----------- GND ----------- GND BLK(背光&#xff09;-------GPIO----------- BANK34_L4N_RXD2(w13; j2.12; gpio[2]) RST(复位&#xff…...

数据篇| App爬虫入门(一)

App 的爬取相比 Web 端爬取更加容易,反爬虫能力没有那么强,而且数据大多是以 JSON 形式传输的,解析更加简单。在 Web 端,我们可以通过浏览器的开发者工具监听到各个网络请求和响应过程,在 App 端如果想要查看这些内容就需要借助抓包软件。常见抓包软件有: ‌工具名称‌‌…...

【6】拓扑排序学习笔记

前言 有向无环图和拓扑排序直接关联到中后期的图论建模思想&#xff0c;是很重要的基础知识。这个如果不彻底弄懂&#xff0c;以后图论会很困难。 有向无环图 正如其名&#xff0c;一个边有向&#xff0c;没有环的图&#xff0c;也叫DAG。 DAG图实际运用&#xff1a;描述含…...

OpenCV实现图像特征提取与匹配

‌一、特征检测与描述子提取‌ ‌选择特征检测器‌ 常用算法包括&#xff1a; ‌ORB‌&#xff1a;一种高效的替代SIFT和SURF的算法&#xff0c;主要用于移动机器人和增强现实等领域。适合实时应用&#xff0c;结合FAST关键点与BRIEF描述子‌。‌SIFT&#xff08;尺度不变特征变…...

MyBatis 的核心配置文件是干什么的? 它的结构是怎样的? 哪些是必须配置的,哪些是可选的?

MyBatis 的核心配置文件&#xff08;通常命名为 mybatis-config.xml&#xff09;是 MyBatis 应用程序的入口点&#xff0c;它定义了 MyBatis 的全局配置信息 。 核心配置文件的作用&#xff1a; 配置 MyBatis 的运行时行为: 通过 <settings> 标签设置全局参数&#xff…...

VLAN,DHCP实验访问物理机

目标 三层交换机完成DHCP自动分配IP地址不同vlan间完成通信DNS服务器能够解析www.baidu.com&#xff0c;使PC机能够访问连接真实物理机&#xff0c;PC机与物理机能够互相访问 步骤 一、创建VLAN&#xff0c;配置好PC机和交换机的IP地址 LSW1 [LSW1]vlan batch 10 20 Info: T…...

六十天前端强化训练之第十七天React Hooks 入门:useState 深度解析

欢迎来到编程星辰海的博客讲解 看完可以给一个免费的三连吗&#xff0c;谢谢大佬&#xff01; 目录 一、知识讲解 1. Hooks 是什么&#xff1f; 2. useState 的作用 3. 基本语法解析 4. 工作原理 5. 参数详解 a) 初始值设置方式 b) 更新函数特性 6. 注意事项 7. 类组…...

解决 HTTP 请求中的编码问题:从乱码到正确传输

文章目录 解决 HTTP 请求中的编码问题&#xff1a;从乱码到正确传输1. **问题背景**2. **乱码问题的原因**2.1 **客户端编码问题**2.2 **请求头缺失**2.3 **服务器编码问题** 3. **解决方案**3.1 **明确指定请求体编码**3.2 **确保请求头正确**3.3 **动态获取响应编码** 4. **调…...

跨国企业网络案例分析:SD-WAN智能组网

跨国企业面临的网络问题日益增加&#xff0c;如全球供应链协同、跨国研发协作及实时生产数据传输等场景&#xff0c;对网络质量提出更高要求。本文将深度解析某跨国工业集团如何通过SD-WAN实现网络架构智能化转型。 该集团以上海全球总部为核心&#xff0c;构建了覆盖亚欧美三大…...

视频孪生与三维视频融合:重构工业现场的“数字视网膜“

在浙江某精密制造企业的总控中心&#xff0c;30米长的曲面屏上实时跳动着工厂的每个生产细节&#xff1a;机械臂的运动轨迹与数字模型完全同步&#xff0c;质检工位的操作误差被自动标记&#xff0c;AGV小车的行进路径在三维空间中以光带形式可视化呈现。这种虚实交融的场景并非…...

STM32Cubemx-H7-7-OLED屏幕

如何把江科大的OLED标准库文件换成hal库的文件 前言 本文讲解如在hHAL库中使用OLED&#xff0c;其实江科大做的文件好已经很好了 只讲操作&#xff0c;不讲废话&#xff0c;默认大家都有32基本操作 创建工程 首先创建工程 把那两个引脚设置成开漏 获取标准库文件 打开江科大O…...