自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

m0_45463480的博客

精心创作,共同进步。

  • 博客(878)
  • 资源 (26)
  • 问答 (1)
  • 收藏
  • 关注

原创 Linux | i.MX6ULL网络通信-套字节 UDP(第十八章)

本文介绍了基于i.MX6ULL开发板的UDP套接字编程实现。UDP作为一种无连接的传输层协议,具有资源消耗小、处理速度快的特点,适用于音视频传输等场景。文章详细讲解了UDP服务器和客户端的编程实现:服务器端通过socket()创建UDP套接字,使用bind()绑定端口,通过recvfrom()接收数据;客户端同样创建UDP套接字后,直接使用sendto()发送数据。与TCP不同,UDP通信不需要listen()、accept()和connect()函数。最后展示了在Ubuntu虚拟机和i.MX6ULL开发板

2025-08-17 14:21:02 226

原创 Linux | i.MX6ULL网络通信-套字节 TCP(第十七章)

本文介绍了在i.MX6ULL开发板上基于TCP的socket网络编程实现。首先讲解了TCP/IP通信的基本流程,包括服务器端通过socket()、bind()、listen()和accept()函数建立连接,客户端通过socket()和connect()发起请求。然后给出了具体的C语言实现代码示例,包括服务器端循环发送欢迎信息,客户端持续接收数据并打印。最后详细说明了交叉编译和运行过程:在Ubuntu上运行服务器程序,在开发板上运行客户端程序,成功建立了TCP连接并实现了数据通信。通过这个实验,开发者可以掌

2025-08-17 13:25:32 73

原创 Linux | i.MX6ULL移植 ssh 服务到开发板(第十五章)

本文详细介绍了在i.MX6ULL开发板上移植SSH服务的过程。首先提供OpenSSL、OpenSSH和zlib的官方下载地址,然后分步骤讲解三个组件的交叉编译过程:zlib库需要修改Makefile中的编译器参数;OpenSSL需要配置为ARM平台;OpenSSH编译时需指定zlib和OpenSSL的安装路径。最后将生成的二进制文件部署到开发板,生成密钥文件并配置网络,最终实现SSH远程连接功能。整个过程涉及多个组件的交叉编译和配置,需要注意编译器路径和库文件路径的正确设置。

2025-08-10 10:59:11 44

原创 软件加密工具-Linux平台Virbox 用户工具使用(编程之美)

摘要:Virbox用户工具现已支持Linux和Mac平台,提供本地锁、网络锁、云锁和软锁功能,目前仅支持命令行操作。Linux支持Debian、Ubuntu等多个系统版本,服务管理分为Sysc和systemd两种方式。SDK开发包包含头文件、开发库和示例程序,支持C/C++混合编译,提供了详细的代码注释规范和函数调用约定说明。文档还包含许可服务状态查询、函数参数标识(IN/OUT)、错误代码定义等开发指导内容,帮助开发者实现软件加密和授权管理功能。

2025-08-09 11:45:25 471 1

原创 软件加密工具-DSProtector使用说明

DSProtector是一款配合VirboxProtector使用的文件加密工具,支持资源文件和脚本加密。本文详细介绍了其使用方法,包括界面工具操作(设置输出目录、文件拖放顺序影响输出路径等)和命令行工具使用(仅支持Windows/Linux)。针对JAR和WAR文件保护,提供了不同场景下的操作流程,如Linux系统下的Java解释器调用、Windows下Tomcat服务启动等。工具可保留原始文件,支持备份功能,并详细说明了输出路径设置规则。

2025-08-07 21:09:48 371 2

原创 Linux | i.MX6ULL移植 Gdb+Gdbserver 调试(第十四章)

本文介绍了在ARM开发板上进行远程调试的方法。首先需要分别在宿主机(PC)和目标板(ARM板)上安装gdb和gdbserver程序,强调必须使用与目标平台匹配的交叉编译器编译gdb。具体步骤包括:1)在Ubuntu上配置并编译arm平台的gdb;2)编译gdbserver时需注释config.h中的宏定义;3)将gdbserver拷贝至ARM板文件系统;4)编写带-g参数的测试程序;5)通过指定IP和端口建立宿主机与目标板的连接。文章还提供了gdb-7.8.1的下载链接和注意事项,适用于i.MX6ULL等A

2025-08-03 20:05:59 65 1

原创 Qt C++动态库SDK在Visual Studio 2022使用(C++/C#版本)

本文详细介绍了在Visual Studio 2022环境下集成C++ SDK到IDE的配置方法,包括C/C++和C#两种语言环境。主要内容涵盖:1)C/C++工程的环境配置步骤,涉及头文件、库文件路径设置和DLL引用;2)C#工程配置方法,重点说明了C++动态库到C#的转换技巧,包括结构体布局、字符串处理、指针转换和回调函数封装;3)提供了字节数组与结构体互转的实用方法。文章特别强调了跨语言调用时的数据类型转换和内存管理注意事项,为开发人员提供了完整的SDK集成解决方案。

2025-07-27 15:49:17 1089 2

原创 qcustomplot.h 中文清晰注释(1D\2D绘图 支持Qt4,5,6)

QCustomPlot是一个功能强大的Qt绘图库,支持1D/2D数据可视化。它提供丰富的图表类型(曲线、柱状图、箱线图等),支持极坐标、颜色映射、误差棒等专业功能。库采用模块化设计,包含坐标轴管理、图层控制、交互操作等核心组件。遵循GNU通用公共许可证开源,支持Qt4/Qt5/Qt6多个版本。开发者可通过源码或共享库集成,并利用完善的类继承体系进行扩展。该库特别适合需要复杂数据可视化的科学和工程应用,其文档化良好的API和灵活的定制选项使其成为Qt生态中数据绘图的优秀解决方案。

2025-07-20 13:49:32 64 1

原创 QCustomPlot绘图保存成PDF文件

本文介绍了基于Qt框架的文本与绘图集成方案,主要涉及以下几个核心组件: QTextDocument:用于处理和显示富文本内容,支持文本、图像、表格等多种元素。 QTextObjectInterface:实现自定义文本对象的接口,通过intrinsicSize()和drawObject()方法处理对象的尺寸计算和绘制。 QPainter:提供在窗口或绘图设备上进行绘图操作的功能。 实现方案包括: 通过QCPDocumentObject类将QCustomPlot图表嵌入到QTextDocument中 支持在文本

2025-07-13 21:02:33 133

原创 QCustomPlot绘图结合滑动条演示

摘要:该Qt项目实现了一个带滚动条控制的坐标轴绘图系统。通过MainWindow类管理界面,使用QCustomPlot组件绘制两条曲线(蓝色和红色),分别表示高斯衰减的正弦函数和指数函数。项目通过滚动条与坐标轴的双向绑定实现交互式视图控制:水平滚动条调整X轴范围(-5,5),垂直滚动条调整Y轴范围(-5,5),同时支持拖拽和缩放操作。代码包含完整的信号槽连接机制,确保滚动条位置与坐标轴范围的实时同步,并采用数值转换处理整数滚动条与浮点坐标的映射关系。

2025-07-13 20:21:04 70

原创 C++内存泄漏排查大赛

摘要: C++内存泄漏排查大赛旨在提升开发者对内存管理问题的解决能力,通过预赛(模拟代码)和决赛(真实项目)形式展开。比赛聚焦动态内存未释放、容器指针泄漏等典型场景,推荐Valgrind、ASan等工具,并分享优秀案例(如自定义内存池方案)。赛后统计显示修复200+漏洞,工具使用率提升40%。未来计划扩展多线程泄漏检测,推动C++内存安全实践。(150字)

2025-07-13 12:44:28 255

原创 QCustomPlot绘制20种常见图形

本文介绍了使用Qt框架中的QCustomPlot库绘制多种交互式图表的方法。主要内容包括: 基础图表绘制 二次函数曲线图 正弦/余弦波形图(带指数衰减包络线) 散点图(含置信区间和误差条) 高级图表功能 多轴坐标系(主/次坐标轴) 对数坐标轴 实时数据动态更新 极坐标图 金融蜡烛图/OHLC图 样式定制 线型/散点样式设置 纹理填充 颜色映射 统计箱形图 柱状图堆叠 交互功能实现 范围拖动/缩放 数据点追踪 多图层管理 截图保存功能 关键点: 通过setupDemo函数切换20种不同的演示案例 使用定时器实

2025-07-13 12:36:40 325

原创 QCustomPlot绘制交互图

本文介绍了使用QCustomPlot库绘制正弦和余弦曲线的Qt实现方法。主要内容包括:1) 项目配置,通过.pro文件添加QT模块和C++11支持;2) 核心交互功能实现,包括坐标轴设置、图例管理、鼠标事件处理等;3) 随机图形生成算法,通过数学公式计算曲线坐标点;4) 上下文菜单功能,提供添加/移除图形和移动图例等操作。文章还详细解析了QCPAbstractPlottable、QCPGraph和QCPDataSelection等关键类的作用,展示了如何创建交互式图表应用。该实现支持双击修改标题/标签、拖动

2025-07-12 13:21:12 50

原创 QCustomPlot绘制正玄和余玄图

摘要:本文介绍了基于QCustomPlot库的Qt图表开发实例,重点展示了AxisTag类实现动态轴标签功能。项目通过QMake配置支持不同Qt版本,使用C++11标准开发。核心功能包括:1) 创建包含两个Y轴的自定义图表;2) 实现带箭头的动态数值标签跟随曲线移动;3) 定时器模拟数据更新机制。代码详解了坐标轴配置、图形绘制、标签位置计算等关键技术点,适用于实时数据可视化场景,是Qt企业级图表开发的典型解决方案。文中还提供了完整的中文注释版源码。

2025-07-06 21:05:08 51

原创 Opencv计算机视觉PPT-算法篇

01 02 03 04 05 06 07 08 09 010 011 012 013 014 015 016 017 018

2025-06-28 20:44:05 69

原创 VS2022 C++动态库制作和使用指南

本文介绍了Visual Studio 2022中动态链接库(DLL)的制作和使用方法。创建动态库项目时需选择DLL模板,添加头文件声明导出函数,并在项目属性中设置导出路径。使用动态库时,需配置包含目录、库目录和依赖项,并将DLL文件放在执行目录。文章还提到了通过预处理器导出类和取消预编译头文件的注意事项,为C++开发者提供了详细的DLL开发指南。

2025-06-17 20:55:07 221 1

原创 VS202静态库制作和使用指南

本文介绍了静态库的特点及其创建与使用方法。静态库在编译时直接链接到可执行文件中,减少运行时加载时间(Windows为.lib,Linux为.a)。文章详细说明了在VS中创建静态库的步骤:新建项目、添加头文件和源文件、配置项目属性为静态库、生成.lib文件。并演示了两种使用静态库的方法:添加库目录或通过链接器附加依赖项。最后提示可执行文件大小可用于与动态库对比。静态库需与头文件配合使用,源文件代码已融入.lib文件中。

2025-06-15 14:20:29 122 2

原创 滚动截图、录屏软件faststonecapture安装和使用教程

FastStone Capture软件使用教程摘要:本文介绍了FastStone Capture软件的安装激活、滚动截图、视频录制和图片标注功能。安装时需输入指定序列号激活,滚动截图功能可截取长页面,通过Ctrl键选择区域并控制滑动速度。软件还支持屏幕录制(可配音)和图片编辑功能,包括添加文字、提示框等标注。所有功能提供30天免费试用,适合制作视频配图、表情包等需求。文章详细说明了各功能的操作步骤和注意事项。

2025-06-08 10:07:11 715

原创 软件保护篇:防止您的软件源代码泄漏、未经授权被分拆、篡改和针对软件的逆向工程

VirboxLM是深盾科技推出的软件保护授权管理平台,提供源代码全生命周期保护方案,防止泄漏、篡改和逆向工程。该平台支持云许可、软许可和加密锁三种授权方式:云锁采用账号密码形式,需实时联网;软锁支持离线使用,有账号和授权码两种形式;精锐5加密锁则需USB设备离线操作。VirboxLM还提供私有化部署选项,并持续更新功能。开发者使用VirboxProtector加密软件后,配合授权机制可实现限时、限次等灵活控制。不同授权方式在联网要求、成本和绑定设备等方面存在差异。

2025-06-03 22:02:49 996

原创 VS2022 安装CodeGeeX AI插件实现高效编程体验

本文介绍了CodeGeeX智能编程助手在Visual Studio中的应用。与DeepSeek相比,CodeGeeX在代码注释和语言转换方面表现更优。文章详细展示了如何在VS2022中安装CodeGeeX插件,并演示了其核心功能:通过实例将C++快速排序代码自动转换为C#版本,同时自动添加详细注释。CodeGeeX支持数十种编程语言,对个人用户免费,企业可私有化部署。该工具显著提升了开发效率,特别适合需要跨语言转换和代码注释的场景。

2025-05-25 12:02:38 755

原创 Visual Studio已更新为17.14+集成deepseek实现高效编程

使用 Copilot 实现重构旨提高你在此应用场景中的工作效率,具体体现在让你能够借助 GitHub Copilot 自动实现或在方法中添加重要功能。遇到仅包含 NotImplementedException 引发的空方法时,可以在该 throw 行上选择灯泡 (CTRL+.),然后选择“使用 Copilot 实现”重构****,而 Copilot 将根据现有代码库、方法名称等填写方法的所有内容。利用此功能,可节省宝贵的时间和精力,让你能够更专注于编码,减少用于文档的时间。打开vs2022-工具-选项。

2025-05-18 17:19:02 2703 4

原创 STM32 | FreeRTOS 递归信号量

拥有互斥量的任务必须调用API函数xSemaphoreGiveRecursive()将拥有的递归互斥量全部释放后,该信号量才真正被释放。比如,一个任务成功获取同一个互斥量5次,那么这个任务要将这个互斥量释放5次之后,其它任务才能获取到它。互斥量的使用比较单一,因为它是信号量的一种,并且它是以锁的形式存在。在初始化的时候,互斥量处于开锁的状态,而被任务持有的时候则立刻转为闭锁的状态。如果创建成功则返回一个递归互斥量句柄,用于访问创建的递归互斥量。使能递归互斥量,详细文件在FreeRTOS.h。

2025-05-17 15:28:08 568

原创 STM32 | FreeRTOS 互斥信号量

互斥信号量是一种特殊的二值信号量,用于实现对临界资源的独占式处理。与普通信号量不同,互斥信号量支持所有权、递归访问和防止优先级翻转的特性。互斥信号量的状态只有开锁或闭锁两种,任务持有互斥信号量时处于闭锁状态,释放后则开锁。FreeRTOS中的互斥信号量通过优先级继承机制降低优先级翻转的影响,即当高优先级任务申请被低优先级任务占用的资源时,系统会临时提升低优先级任务的优先级,以减少高优先级任务的阻塞时间。互斥信号量适用于多任务环境下对临界资源的保护,确保资源的独占访问,但不能在中断服务函数中使用。

2025-05-17 15:24:03 992

原创 STM32 | FreeRTOS 事件标志组

但是它与信号量不同的是,事件的发送操作是不可累计的,而信号量的释放动作是可累计的。而任务2对事件3与事件5感兴趣(逻辑与),当且仅当事件3与事件5都发生的时候,任务2才会被唤醒,如果只有一个其中一个事件发生,那么任务还是会继续等待事件发生。在某些场合,可能需要多个时间发生了才能进行下一步操作,比如一些危险机器的启动,需要检查各项指标,当指标不达标的时候,无法启动,但是检查各个指标的时候,不能一下子检测完毕啊,所以,需要事件来做统一的等待,当所有的事件都完成了,那么机器才允许启动,这只是事件的其中一个应用。

2025-05-17 15:17:57 745

原创 STM32 | FreeRTOS 消息队列

队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消息是空时,读取消息的任务将被阻塞,用户还可以指定阻塞的任务时间 xTicksToWait,在这段时间中,如果队列为空,该任务将保持阻塞状态以等待队列数据有效。3. 在获取队列中的消息时候,我们必须要定义一个存储读取数据的地方,并且该数 据区域大小不小于消息大小,否则,很可能引发地址非法的错误。

2025-05-17 15:10:30 1211

原创 STM32 | 软件定时器

软件定时器是通过程序模拟的定时器,能够由单个硬件定时器模拟出多个软件定时器,解决了硬件资源限制的问题。然而,软件定时器在运行和维护时会消耗CPU资源,且精度低于硬件定时器,常用于简单的定时控制,如喂狗、控灯等。在Linux、μC/OS、FreeRTOS等操作系统中,软件定时器的实现原理相似:通过硬件定时器产生时钟节拍,程序定期扫描所有运行中的软件定时器,比较其到期时间与全局时钟标记,判断是否到期并执行回调函数。配置软件定时器时,需设置优先级、队列长度和任务堆栈大小。FreeRTOS中,软件定时器的创建、启动

2025-05-17 14:23:42 977

原创 Linux | Uboot-Logo 修改文档(第十七天)

将准备好的“.bmp”格式的图片拷贝到 uboot 的“/tools/logos”目录下,作者拷贝的文件为将图片名称修改为“freescale.bmp”。使用命令“tar -xvf uboot-imx-rel_imx_4.1.15_2.1.0_ga_20200323.tar.gz ”解压 uboot。要修改 uboot 配置的屏幕信息,使用命令“vi ./board/freescale/mx6ul_topeet/mx6ul_topeet.c”。将最后一个的值修改为“qn_enable”,如下图所示。

2025-05-11 21:54:50 342

原创 Qt还有希望吗

😬市场竞争压力不小跨平台框架竞争激烈,Flutter、React Native、Electron 等来势汹汹,不过 Qt 凭借性能和资源控制优势,还能稳住阵脚。开源协议和商业化策略可能是个坑,LGPL 和商业双许可模式,要是公司调整授权策略,比如限制开源版本功能,社区可不答应。🌌2025 年 Qt 价值预测乐观来看,若 Qt 持续优化对新兴技术支持,保持开源社区活跃,在嵌入式、汽车和工业领域价值飙升,有望成智能设备开发首选框架。商业公司战略调整,Qt 母公司决策,像定价、功能优先级,直接影响市场地位。

2025-05-07 21:57:30 3508 3

原创 Linux | 修改开机进度条修改文档(第十六天)

前提配置环境变量,Yocto 环境的交叉编译器是之前通过 yocto 获取的即 fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh。“source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi”,添加编译器。将文件系统打包,注意打包的路径要写对,然后烧写,启动。

2025-05-01 14:05:55 175

原创 “Everything“工具 是 Windows 上文件名搜索引擎神奇

搜索文件类型,请在搜索框输入扩展名, 例如,搜索 mp3 文件,输入 *.mp3 即可。UAC 警告可以通过以标准用户运行 "Everything" 和安装 "Everything" 服务或不使用 NTFS 索引来避免。不像 Windows 内置搜索,"Everything" 默认显示电脑上每个文件和文件夹 (就如其名 "Everything")。可以,"Everything" 可以通过搜索函数 content: 来搜索文件内容。免费,"Everything" 是一款免费软件。

2025-05-01 12:31:08 1413

原创 Linux | Mfgtools 修改单独只烧写 Uboot,内核,文件系统

2. 打开“Profiles\Linux\OS Firmware\ucl2.xml 文件,修改此文件。图 3 是修改 NAND 的板子,如果您想。就把下面图一的代码注释掉,其余的不要动。,就注释掉下面图二的代码,其余的不要动。就注释掉下面图三的代码,其余的不要动。图 1 是修改 NAND 的板子。图 2 是修改 EMMC 的板子。是修改 EMMC 的板子,如果您想。是修改 EMMC 的板子,如果您想。就把下图的代码注释掉,其余的不要动。图 6 是修改 NAND 的板子。图 7 是修改 EMMC 的板子。

2025-04-26 19:54:00 232

原创 Linux | I.MX6ULL 文件系统

如果用户的文件系统非我们的出厂版本,请参考之前烧写章节重新烧写出厂文件系统。这里我们注意,商业级核心板的“/dev/mmcblk1p1”设备是 emmc 为内核设备树提供的单独分区。我们在测试 qt 程序时经常会用到 U 盘 TF 卡拷贝程序,yocto 系统在使用这些设备时会自动挂载,非常方便。用户可以在文件系统启动之后,通过控制台命令来实现背光调整,参考命令如下。首先启动开发板,我们将 U 盘插入 USB 接口会有如下图打印信息。具体的值,用户可以根据自己的需求进行更改。”查看对应分区挂载的目录。

2025-04-20 18:17:24 115

原创 Linux | I.MX6ULL 使用 Yocto 文件系统开发 QT

01Yocto 文件系统默认支持了 QT,那么我们要怎么在 Yocto 文件系统来运行我们的 QT 程序呢?本章节我们就来学习上在 yocto 文件系统+Ubuntu 环境来开发 QT 程序。注意,开发环境是基于“qtcreator-3.5.1”(Ubuntu16.04.6),库文件是Qt5.5.102(1)首先我们将“qt-opensource-linux-x64-5.5.1.run”通过 SSH 工具传到 ubuntu 上/root 目录上,如下图。

2025-04-19 19:55:12 234

原创 Linux | I.MX6ULL 内核的编译(13)

在编译 Uboot 和内核源码之前,我们需要安装三个第三库他们分别是:lzop、libncurses5-dev、u-boot-tools。我们可以根据上表的提示,将对应的镜像拷贝到 Windows 系统下,然后使用 MFGTools 烧写工具烧写到开发板运行。本章我们就来学习一下如何将 NXP 官方提供的 Linux 内核移植到【苏电子】 i.MX6UL 终结者开发板上。,我们根据核心板的类型,将对应的镜像文件整理成下表所示。从上图可以看到生成了十几个设备树文件,因为苏电子的。包移植到我们自己的平台上。

2025-04-18 15:41:45 228

原创 Linux | I.MX6ULL Uboot 编译(12)

然后就可以将其烧录到i.mx6ull开发板。更多内容查看i.MX6ULL合集。将这个文件拖到ubuntu16。

2025-04-18 15:21:32 93

原创 Linux | I.MX6ULL外设功能验证(11)

然后我们使用 CAN1 作为数据发送端,我们在调试串口终端输入“cansend can16A0#11.22.33.44.55.66.77.88”命令,发送数据,其中的 6A0 是帧 ID,#后面的是数据,共 8 个字节。从上图我们可以看到 CAN1 发送数据以后,后台运行的 CAN0 接收程序收到了 CAN0 的数据,并显示出来,接收到的数据和发送的数据内容一致。i.MX6ULL 开发板的 OTG 接口,可以用作烧写的接口,同时在系统启动之后,可以用作 host 模式,可以当做 USB 来使用。

2025-04-10 21:57:23 189

原创 Linux | I.MX6ULL外设功能验证(第10天)

在本节的所有功能测试中,我们使用的是 Yocto的文件系统。

2025-04-08 21:01:36 165

原创 Linux | I.MX6ULL开发板固件烧录所需文件详述(9)

商业级的核心板,它的存储是 EMMC 的,EMMC 的存储是类似于正方形的芯片,旁边是 NAND FLASH的一个封装,因为我们这里要兼容 NAND FLASH ,这里是一个兼容的设计。

2025-04-05 21:15:37 204

原创 Linux | 安装超级终端串口软件连接i.MX6ULL开发板(8)

Linux | 安装超级终端串口软件连接i.MX6ULL开发板

2025-04-04 19:28:13 334

原创 Linux | I.MX6ULL内核及文件系统源码结构(7)

支持 Busybox(1.29.0)、buildroot(2019.02.9)、Ubuntu(16.04.6)这四种文件系统。支持 EMMC,NAND FLASH;版本:2016.03。支持环境变量修改保存。USB HOST驱动。Sil9022A驱动。

2025-04-02 21:38:36 398

嵌入式PC端虚拟串口端口生成及串口调试工具.rar

只要是编程人员,这两个工具你一定要使用。 【1】打开第一个文件Setup.exe,双击setup进行安装,安装位置可以自定义,安装完成后把对号去掉(launch...) 【2】在桌面上找已经安装软件快捷方式【Launch Virtual Serial Port Driver】,右键,打开文件所在位置。 将文件caack中的补丁【vspdpro.exe】拖到文件所在位置,替换,安装完成!

2023-08-08

SQLite是数据库,在Qt中实现,用于存储用户信息

Qt 实现SQLite全部语法 【1】SQLite Qt界面设计 【2】SQLite Qt数据库创建、打开、关闭、删除 【3】SQLite Qt表格的创建 【4】SQLite Qt表格的插入 【5】SQLite Qt表格的查询 【6】SQLite Qt表格的删除 【7】SQLite Qt表格的更新 【8】SQLite Qt表格的结构 【9】SQLite Qt表格的修改 【10】SQLite 常用内置函数举例 1、计算表格行数 2、计算表格某列最大值 3、计算表格某列最小值 4、计算表格某列平均值 5、计算表格某列总和 6、计算一个随机数 7、计算绝对值 8、字符串转化大小写 9、计算字符串长度 10、效果 【11】SQLite 日期函数 【12】SQLite LIKE和GLOB子句(通配符) 【13】SQLite LIMIT子句 (限定行显示) 【14】SQLite 表格排序 (升序、降序) 【15】SQLite GROUP BY子句 (分组) 【16】SQLite HAVING 子句(分组的条件) 【17】SQLite DISTINCT 关键字(去重) 【18】SQLite 交叉连接

2023-06-24

QT EventFilterQChartsQDataStreamQDir

androidandroidopenc 雄甾烷 EventFilterQChartsQDataStreamQDir EventFilterQChartsQDataStreamQDir FileQLabelQPainterQPushButtonQPushButton1 FileQLabelQPainterQPushButtonQPushButton 1 创建日期: 2022/9/18 创建日期:2022/9/18 QSpeech QSpeech 大小:82.5 MB 大小:82.5MB QT Camera solree oue QT相机独树OUE 文件夹: build-QPainte 文件夹:Build-QPainte QT_RB QT_Rb QTextCodecQTWidgetwidgetTEST QTextCodecQTWidgetwidgetTEST V4L2 camera display QThreadV4L2 camera display QTimerYD-Ul V4L2相机显示QThreadV4L2相机显示QTimerYD-Ul

2023-02-19

QT 文件操作 事件过滤器 鼠标移动事件

QT学习资料 QT 文件操作 事件过滤器 鼠标移动事件

2023-02-19

基于数据结构商品购物系统 项目.zip

#include <stdlib.h> #include <stdio.h> #include <string.h> #include "program.h" //注册资源管理器 (商品头结点 购物车头结点 管理器头节点 初始化) extern node_t *register_resouse_manage(void) { //为管理结构体申请一块内存 node_t *new_manage_node; new_manage_node = malloc(sizeof(node_t)); //存储商品信息或购物历史信息 if(new_manage_node == NULL) { free(new_manage_node); return NULL; } //申请商品链表头结点 申请成功应该初始化 传入文件信息 new_manage_node->com_info_list = request_commodity_list_node(); printf(

2022-05-01

第八天-内核链表排序.zip

第八天-内核链表排序.zip

2022-05-01

第七天-二叉树与排序算法.zip

int main(int argc, char **argv) { // 打开一个包含百万数据级别的文件 FILE *src = fopen("numbers.txt", "r");//只读方式打开 if(src == NULL) { perror("打开文件失败"); exit(0);//结束程序 } // 1,将原始数据文件,分割成N个有序的子文件 bool done = false; char file[20]; int N = 0; int wanted = 10*10000; // 假设每次只能读取10万个数据 int infact = wanted;//狂铁:10万伏特 while(1) { // 试图从文件读取 wanted 个数据 unsigned *data = calloc(wanted, sizeof(unsigned));//申请10万块,每块4字节 for(int i=0; i

2022-05-01

第六天-内核链表及二叉树.zip

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> #include <list.h> struct student_info{ char name[4096];//姓名 short age;//年龄 float height;//身高 }; //大结构体 typedef struct list_node{ struct student_info data; struct list_head list;//导入内核链表小结构体 }node_t;//链表节点类型 //申请空间 node_t *request_link_list_node(void) { node_t *new_node; new_node = malloc(sizeof(node_t)); if(new_node == NULL) { perror("申请链表节点失败"); return NULL; }

2022-05-01

内核链表代码111.zip

/* * @Author: your name * @Date: 2021-09-01 17:01:47 * @LastEditTime: 2021-09-01 17:35:15 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: \Desktop\kernel_list\main.c */ #include <stdio.h> #include <stdlib.h> #include "list.h" typedef struct big{ int data; struct list_head list; }node_t; typedef struct one{ int data; struct list_head list; }node_one_t; typedef struct two{ int data; struct list_head list; }node_two_t; no

2022-05-01

第三天-队列与栈的逻辑与单向循环链表.zip

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef struct list_node{ int data; struct list_node *next; }node_t;//链表节点类型 //不安全的遍历 #define list_for_each(head, pos) for(pos=head->next; pos!=head; pos=pos->next) //安全的遍历 #define list_for_each_safe(head, pos, n) for(pos=head->next, n=pos->next; pos!=head; pos=n, n=n->next) node_t *request_link_list_node(void) { node_t *new_node; new_node = malloc(sizeof(node_t)); if(new_node == NULL) { perror

2022-05-01

第四天-双向循环链表.zip

int main(void) { int input_value; node_t *list_head, *new_node;//申明两个链表节点的指针变量,其中list_head用来存放链表的头节点,new_node用来临时存放一下新申请的节点 //新建链表头节点 list_head = request_list_node(); while(1) { scanf("%d", &input_value); if(input_value > 0) { //新建节点 new_node = request_list_node();//新申请一个节点 new_node->data = input_value;//将数据存放进去这个节点当中 //将这个新的节点插入到list_head所对应的表格中 insert_node_to_list_tail(list_head, new

2022-04-25

第二天-单向链表.zip

int main(void) { int input_value; node_t *list_head, *new_node; //新建头节点 list_head = request_link_list_node(); if(list_head == NULL) return -1; list_head->data = -1; while(1) { scanf("%d", &input_value); if(input_value > 0) { //新建节点 new_node = request_link_list_node(); new_node->data = input_value; //将节点插入到表格当中 insert_node_link_list(list_head, new_node);

2022-04-23

QT软件工具使用.zip

解压文件夹--》配置windows环境变量(右键计算机--》属性--》更改设置--》高级--》环境变量--》Path中添加你解压的mplayer.exe所在的路径)

2022-04-23

第一天-数据结构概念及顺序表.zip

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #define SQL_NUMB 10 typedef struct sequance_list{ int array[SQL_NUMB];//这个是用来放数据的 int last;//这个是用来记录上面的数组用到第几个元素的 }sql_t; //函数返回结构体地址【因为这样才能利用里面的数据】 sql_t *request_sequence_list(void) { sql_t *new_sql;//定义一个结构体变量 //堆是由程序员自己申请的,所以要自己使用释放函数释放,栈是系统自己释放 new_sql = malloc(sizeof(sql_t));//申请一块结构体大小的内存 if(new_sql == NULL) { perror("申请内存失败"); return NULL; } new_sql->last = -1;//初始化以下,数组是从0开始保存数据,-1就是没有数据 return new_sql;//返回

2022-04-23

QT中项目第二个.zip

//识别图片 void CarSystem::on_regBt_clicked() { //识别--pPath是成员变量保存车头照片路径 cv::Mat plateImage = cv::imread(pPath.toUtf8().data());//要识别的车牌照片路径(要清晰,正面) //定义一个容器存放识别结果 //RunPiplineAsImage()根据你提供的车牌照片识别车牌 std::vector<pr::PlateInfo> res = carPrc->RunPiplineAsImage(plateImage,pr::SEGMENTATION_FREE_METHOD); float conf = 0; //保存识别的车牌号码 std::string plateNumber = ""; //新式for循环 for (pr::PlateInfo st : res) { if (st.confidence>0.70) //判断识别率,识别结果中识别率高于90% {

2022-04-23

10.QT项目第一个.zip

#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDir> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); pp=2; //设置窗口标题 setWindowTitle("客户端008"); //初始化套接字对象 sock=new QTcpSocket(this); //绑定客户端自己的ip和端口号 sock->bind(QHostAddress("192.168.24.86"),7000); //关联readyRead()信号 connect(sock,SIGNAL(readyRead()),this,SLOT(recvservermsg())); //设置水平头 --》树状列表框的树根 ui->treeWidget->setHeade

2022-04-23

1.QT环境搭建,QT工程,ui界面设计,代码登录

1.QT环境搭建,QT工程,ui界面设计,代码登录

2022-04-17

2.QString,信号与槽,设计ui的两种方式

2.QString,信号与槽,设计ui的两种方式

2022-04-17

3.多界面跳转,界面传递参数,布局管理器

3.多界面跳转,界面传递参数,布局管理器

2022-04-17

4.消息盒子,对话框,定时器,日期和时间

4.消息盒子,对话框,定时器,日期和时间

2022-04-17

5.列表框,交叉编译QT程序,QT控制硬件,多进程

5.列表框,交叉编译QT程序,QT控制硬件,多进程

2022-04-17

6.多线程,菜单栏,打包QT程序,其它组件

6.多线程,菜单栏,打包QT程序,其它组件

2022-04-17

7.网络编程,Http和JSON解析,事件

7.网络编程,Http和JSON解析,事件

2022-04-17

7.QT数据库入门学习

7.QT数据库入门学习

2022-04-17

9.串口编程QT实现教程

9.串口编程QT实现教程

2022-04-17

语音离线识别包,可通过局域网通信实现语音交流

语音离线识别包,可通过局域网通信实现语音交流

2022-04-17

RFID射频识别你了解多少,开车刷卡,蓝牙刷卡,门禁卡等等,代码实现编写,A,B命令字带你掌握

RFID射频识别你了解多少,开车刷卡,蓝牙刷卡,门禁卡等等,代码实现编写,A,B命令字带你掌握

2022-04-17

串口编程让你了解什么是同步和异步吗?进来看看

串口编程让你了解什么是同步和异步吗?进来看看

2022-04-17

led驱动-各种版本的mplayer-arm+linux-gnueabi-5.4.0.tar.xz+Qt-Embedded-5.

LED驱动:GEC6818开发板上的灯驱动 各种版本的mplaye: 音视频播放器,使用命令即可播放,支持win10和开发板,应用于各种场合,特别是语音识别技术,很多毕设都是用这个做的。 gcc编译工具:arm+linux-gnueabi-5.4.0.tar.xz, 解压命令:tar -zxvf arm+linux-gnueabi-5.4.0.tar.xz linux或者开发板编译工具,gcc main.c -o main生成可执行文件,,,运行 ./main QT交叉编译工具:Qt-Embedded-5 (1)把我给的5.4.0的编译器拷贝到家目录,然后解压 tar -xf arm-linux-gnueabi-5.4.0.tar.xz (2)配置一下环境变量 export PATH=你的新的arm-linux-gcc所在的路径:$PATH //一次性的

2022-04-05

JLINK使用驱动下载,ST-LINK驱动及教程,STM32F4串口下载软件(FLYMCU),ST-LINK官方驱动.zip

之前所有正点原子 STM32 教程讲解的调试工具都是以 JLINK 为例。由于德产 J-LINK 价格非常昂贵,而国产 J-LINK 因为版权问题将在万能的淘宝销声匿迹。所以我们有必要给大家介绍 JTAG/SWD 调试工具中另外一个主流仿真器 ST-Link 的使用方法,让大家在今后的 STM32学习中,能熟练掌握 JTAG/SWD 调试配置方法。 如果你已经了解了 JLINK 的使用方法,那么 ST-Link 的使用方法将会非常简单,几乎 99% 的操作方法都是一模一样的。几乎所有 JTAG/SWD 仿真器的使用都有下面三个方面的知识: 1. 驱动的安装。 2. 编程软件(MDK)配置。 3. 固件升级方法

2022-04-05

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除