自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

原创 Qt视频监控系统开发实战:从视频捕获到照片管理

本项目是一个基于Qt框架的视频监控系统,实现了视频捕获、本地显示、网络广播、视频录制、拍照、照片管理等功能。未来,随着技术的不断发展,视频监控系统将朝着更加智能化、网络化和高清化的方向发展,我们可以在此基础上不断探索和创新,开发出更加先进和实用的视频监控解决方案。**解决方案**:实现了完整的缓冲区请求、映射、入队/出队流程,确保视频数据的正确处理。**解决方案**:使用条件编译,为不同平台提供不同的实现,确保代码的可移植性。**解决方案**:使用多线程技术,将视频捕获与UI更新分离,减少主线程负担。

2026-02-02 19:57:26 573

原创 c语言高级议题

含义是,如果表达式 expression 的值为真,则编译 some statements,否则不编译。此处,将这种函数指针类型 void (*)(int) 用 typedef 抽取出来,定义了一个别名叫。含义是,如果定义了宏 MACRO,则编译 some statements,否则不编译。含义是,如果没定义宏 MACRO,则编译 some statements,否则不编译。1,在宏的内部,定义了两个变量_a 和_b 来替换 a 和 b,防止 a 和 b 出现多次。

2026-02-02 15:28:57 427

原创 c语言枚举

围”的整型数据,超出范围便无意义,比如指定颜色变量 color 只能是{1,2,3},分别代表。green 和 blue,代码中并没有给他们赋值,所以他们的值都是缺省的,从 0 开始递增,所。方式:第一,直接使用。第三,便是这里的枚举常量,比如例子中的 red、上述代码中的第 4 行定义了一个枚举常量列表,事实上在 C 语言中,使用常量有三种。C 语言中枚举数据是很坑爹的,是一类被阉割了的类型,本来枚举是一种所谓“指定范。言的枚举纯粹就是整型,可以给他赋任意的整数,并没有体现枚举“指定范围”的特点。

2026-02-02 15:04:00 232

原创 FreeRTOS 的任务与 Linux

特性FreeRTOS 任务 (Task)Linux 线程 (Pthread/LWP)内存可见性全局可见(扁平内存模型)进程内可见,进程间隔离硬件访问直接访问(寄存器操作)通过系统调用(驱动程序)调度核心严格实时(高优先级必抢占)公平优先(兼顾所有线程)运行权限特权模式 (通常)用户模式切换开销极低 (保存寄存器即可)中等 (涉及内核态切换、信号处理)崩溃后果往往导致系统复位导致进程终止(通常不影响系统)适用场景电机控制、传感器采集、硬实时响应服务器并发、UI交互、复杂计算。

2026-01-29 20:19:45 769

原创 异步回调的用法

回调 = 把一个函数当参数,交给别人,让它在合适的时候帮你调用异步回调是一种编程机制:程序发起操作后不阻塞等待,当操作完成或事件发生时,由系统或框架自动调用用户提供的回调函数进行处理。

2026-01-29 16:16:18 540

原创 I/O 编程技术

不存在就创建,从程序的执行结果来看,获得的文件描述符 fd 等于 3,这是因为 0、1 和 2。(API),即系统调用,也可以使用由标准 C 库提供的标准 IO 函数,他们的关系如图所示。色标注的那一层,就是这所谓的系统调用接口,这几百个函数是非常精炼的(Windows 系。库函数中,有一组函数也是专门针对文件操作的,被称为“标准 IO”,他们是工作在不同。能需要用到更加丰富的功能,因此就开发了很多库,其中最重要的也是应用程序必备的库就。

2026-01-28 16:01:46 325

原创 c语言更进一步

显示的是一个占据了 4 个字节的 int 型数据(值为 0x00000007),每一个字节都有其对应的地址,编译器会将最小的地址 0x0A33FF04 作为整个 int 型数据的地址,这个最小的地址就是所谓的基地址。运行到下一个恰当的某个时候再赋值,这期间就有个空档期,此空档期内指针 p 的值将是。的大厨,然后你在调用前台小妹的同时,将大厨的电话号码也给到她,小妹在需要做饭的时。你传递给小妹的电话号码,相当于一个能找到大厨。1,当无法确定一个地址所对应的内存的数据类型时,将该地址类型定为 void 型,

2026-01-27 20:32:27 539

原创 一篇文章带你速成STM32裸机开发--基于实际代码

72 * xus默认返回 0没按键 → 所有if不进 → 返回 0volatile是在对编译器说:“这个变量不归你管,老老实实每次去内存拿。5.定时器中断/*** 函 数:定时中断初始化* 参 数:无* 返 回 值:无*//*开启时钟*///开启TIM2的时钟/*配置时钟源*///选择TIM2为内部时钟,若不调用此函数,TIM默认也为内部时钟/*时基单元初始化*///定义结构体变量//时钟分频,选择不分频,此参数用于配置滤波器时钟,不影响时基单元功能。

2026-01-27 14:29:16 1149

原创 详解MetaFormerBlock模块

你可以把这个类看作是一个标准的三明治模具。以前的 YOLO Bottleneck结构:卷积 -> 卷积。特点:简单粗暴,视野比较窄。现在的 MetaFormerBlock结构:混合(Mixer) -> 残差 -> 思考(MLP) -> 残差。关键点:它强行把“提取空间特征”(Mixer)和“提取通道特征”(MLP)分开了。好处:这种结构被证明(在 Transformer 论文中)泛化能力更强,能学到更本质的特征。“我是 MetaFormerBlock。

2026-01-23 13:28:38 306 1

原创 linux 进程学习之信号

1️⃣fork()产生父子进程2️⃣ 父进程用kill()发信号3️⃣ 子进程用signal()接信号4️⃣ 信号来了,自动执行回调函数printf("这里是信号响应函数 %d \n" , arg );// 设置信号响应的函数// 初始化信号集// 将信号集清空// 将指定的一个信号添加到信号集中// 将指定的一个信号添加到信号集中// 设置阻塞信号集中的信号// 把信号集中的信号设置为阻塞状态// 给自己发送 3.4 号信号raise(3);raise(4);

2026-01-22 17:51:10 536

原创 C语言联合体union的用法(非常详细,附带示例)

联合体的定义语法与结构体类似,但使用 union 关键字代替 struct,以下是联合体的定义语法:union 联合体名称 {数据类型1 成员1;数据类型2 成员2;...数据类型n 成员n;在这个语法中,union是关键字,用于声明一个联合体。联合体名称是我们自定义的类型名称,符合C语言标识符命名规则。大括号内列出了联合体的所有成员,每个成员都有自己的数据类型和名称。注意,定义联合体是一个完整的语法,最后的分号;不能省略。

2026-01-22 16:15:26 650

原创 FreeRTOS 提供 软件实现的定时器

因为:你已经用的是FreeRTOS所有逻辑都在:任务软件定时器👉loop()只是 Arduino 的历史遗留。

2026-01-22 14:08:24 500

原创 freertos ----mutex 互斥锁例程

Mutex = 一把钥匙共享资源 = 一个上锁的箱子(库存)拿到钥匙的任务👉 才能动库存没钥匙的任务👉 必须等// 拿钥匙// 还钥匙// 👇👇👇 这里就是临界区// 👆👆👆👉被 Mutex 保护的代码块就叫临界区本程序通过 FreeRTOS 的 Mutex 机制,对多个任务访问共享库存变量的临界区进行保护,避免了由于任务并发执行导致的数据竞争和库存超卖问题。

2026-01-22 12:52:50 708

原创 c++ 中 struct 和 class 的区别

一句话先给你结论:structclass下面掰开揉碎说,配点例子,你一看就懂 👇。

2026-01-21 11:57:51 330

原创 刷题日记-------二叉树层序遍历

给你二叉树的根节点root,返回其节点值的。(即逐层地,从左到右访问所有节点)。root = [1][[1]]root = [][]好,这段代码是,也就是。我按「」来给你拆,像老师板书那种 👍。

2026-01-19 19:42:44 595

原创 手写Linux C UDP通信

UDP 客户端程序不断从键盘读字符串 → 通过 UDP 发给。

2026-01-19 19:01:44 709

原创 一文入门Linux进程线程

线程实际上是应用层的概念,在 Linux 内核中,所有的调度实体都被称为任务(task),他们之间的区别是:有些任务自己拥有一套完整的资源,而有些任务彼此之间共享一套资源。正“活的”、动态的进程(process),因此进程是一个动态变化的过程,是一出有始有终。套资源还是跟别人共享,因此右边的多个调度实体(线程)的进程就比单个调度实体的进程。但线程给我们的不止这些,虽然一个进程内部的多条线程共享了大部分资源,但是还是。的戏,而程序文件只是这一系列动作的原始蓝本,是一个静态的剧本。地方:他会使得进程一分为二!

2026-01-19 14:48:20 823

原创 值传递 地址传递 引用传递

这个点,搞不懂很正常 👍我给你一个的版本,尽量不绕。

2026-01-14 10:36:08 274

原创 时间复杂度和空间复杂度

这个程序随着数据变多,占用的额外内存会多多少?开数组 / vector / new n →。“这个程序随着数据变多,跑得会慢多少?空间:vector 存 n 个元素 →。n = 100 → 执行 100 次。很多人会以为是 O(n) 空间 ❌。n = 10 → 执行 10 次。来描述“趋势”,不是精确时间。时间:for 跑 n 次 →。(二分、折半、查找常见)for 套 for →。总共 n × n 次。砍多少次才能到 1?n 多大,数组就多大。递归 = 看递归深度。

2026-01-11 15:03:47 403

原创 c++qt开发第三天 摄像头采集视频

👉 摄像头取一帧👉 包装成 QImage👉 要么发给 UI 显示👉 要么压缩后 UDP 广播👉 再把 buffer 还给驱动信号槽 + 线程调用关系图太好了 👍这一块一旦想通,Qt 线程 + 信号槽你就算“过关”了。下面我给你不用 Qt 术语、用工程思维来讲,再配一张“脑中必须有的调用关系图”。

2026-01-07 16:41:07 1240

原创 刷题日记 合并区间

意思:输入是输出也是同样格式👉 用来存已经合并好的区间先按起点排序,然后遍历区间:若当前区间与结果数组最后一个区间不重叠,则直接加入;否则合并并更新右端点。++i){if(!else{

2026-01-07 11:13:20 484

原创 c++ QT 开发第二天,用ui按钮点亮实体led

为什么不 deletepushButton?pushButton的父对象是MainWindowQt 会自动释放所有子对象所以这里什么都不用写程序启动↓创建窗口↓创建按钮 + 居中↓绑定 LED 文件↓读取 LED 当前状态↓用户点击按钮↓读取当前状态↓写入相反状态 (0/1)↓更新按钮文字信号 / 槽。

2026-01-06 16:14:57 1216

原创 c++ qt开发第一天 hello world

ui(new Ui::MainWindow) // 动态创建界面对象。// 将 ui 文件中设计的控件加载到当前 MainWindow 对象中。// Qt 命名空间开始(用于兼容 Qt4 / Qt5 / Qt6)// 用于访问 ui 中设计的控件(按钮、标签等)// 声明 Ui 命名空间中的 MainWindow 类。// 引入 Qt 中的主窗口类 QMainWindow。// 显示主窗口(如果不调用,窗口不会显示)// 该文件定义了 Ui::MainWindow 类。

2026-01-06 14:15:56 334

原创 刷题日记 2026.1.6 最大子序和

请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。我回顾我最光辉的时刻就是和不同人在一起,变得更好的最长连续时刻。如果我和你在一起会变得更好,那我们就在一起,否则我就丢下你。连续子数组 [4,-1,2,1] 的和最大,为 6。是数组中的一个连续部分。

2026-01-06 11:19:57 225

原创 刷题日记 相交链表

请注意相交节点的值不为 1,因为在链表 A 和链表 B 之中值为 1 的节点 (A 中第二个节点和 B 中第三个节点) 是不同的节点。换句话说,它们在内存中指向两个不同的位置,而链表 A 和链表 B 中值为 8 的节点 (A 中第三个节点,B 中第四个节点) 在内存中指向相同的位置。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,6,1,8,4,5]。从各自的表头开始算起,链表 A 为 [1,9,1,2,4],链表 B 为 [3,2,4]。,函数返回结果后,链表必须。

2026-01-05 11:49:19 1092

原创 c++ find_if 算法

public:i < 10;i++)elseint main()test01();return 0;

2026-01-05 11:32:43 242

原创 无人机按点飞行脚本

指定使用系统中的 python 解释器来运行该脚本(Linux 下 ROS 必须)# ROS 的 Python 客户端库,用于节点、话题、服务等操作# MAVROS 的 Python 接口库,用于和飞控(PX4/ArduPilot)通信# 引入带时间戳的位姿消息,用于发布位置控制指令# 引入飞控状态消息(连接状态、模式、解锁状态等)# 引入解锁服务(CommandBool)和模式切换服务(SetMode)# 引入三维点类型(这里其实没用到,可以删)

2026-01-04 19:10:18 1005

原创 c++ find 算法

i < 10;++i)if(it!elsepublic:elseint m_Age;elseint main()//test01();test02();return 0;

2026-01-04 17:51:31 388

原创 c++ transform算法

public:public:i < 10;i++)cout<<endl;int main()test01();return 0;

2026-01-04 17:34:07 275

原创 c++ for_each算法

public:i < 10;i++)int main()test01();return 0;

2026-01-04 16:05:42 158

原创 c++ 内建函数对象

#include <iostream>#include <string>#include <fstream>#include <vector>#include <algorithm>#include <deque>#include <stack>#include <queue>#include <list>#include <set>#include <map>#include <functional>using namespace std;void test(){ negate<int> n;

2026-01-04 12:14:45 466

原创 c++ 一元谓词

public:i < 10;i++)if(it!elseint main()test01();return 0;

2026-01-04 11:47:21 261

原创 c++ 函数对象

public:public:MyPrint()int count;int main()//test01();//test02();test03();return 0;

2026-01-04 11:35:23 272

原创 c++ STL案例-----------员工分组

public:i < 5;i++)Worker w;it!= v.end();it++)for (;pos!index = 0;for (;pos!index = 0;for (;pos!int main()it!= v.end();it++)return 0;

2026-01-03 18:25:25 1148

原创 c++ map容器

it!= m.end();it++)m[5] = 50;m3=m;elsem[3]=30;m.erase(2);m[3]=30;if(it!=m.end())elsepublic:m[3]=30;it!=m.end();it++)int main()//test01();//test02();//test03();//test04();test05();return 0。

2026-01-03 17:47:35 419

原创 c++ set容器

it!= s.end();it++)elseelseelseit!= ms.end();it++)public:it!= s5.end();it++)public:int m_Age;public:it!= s1.end();it++)int main()//test01();//test02();//test03();//test05();test06()

2026-01-02 19:54:45 440

原创 c++ list容器

it!= l.end();it++)l.swap(l2);elsel.clear();public:int m_Age;it!= l.end();it++)int main()//test01();//test02();//test03();//test04();test05();

2026-01-02 19:17:37 500

原创 c++ 容器 queue

public:int age;q.push(p1);q.push(p2);q.push(p3);while (!q.empty())q.pop();int main()test01();return 0;

2025-12-26 14:27:35 270

原创 c++ 容器 stack

s.push(1);s.push(2);s.push(3);s.push(4);while(!s.empty())s.pop();int main()test01();return 0;

2025-12-26 14:18:24 379

原创 c++ 容器案例--评委打分

public:int score;i < 5;i++)it!= v.end();it++)i < 10;i++)dit!= d.end();dit++)cout<<endl;dit!= d.end();dit++)it!= v.end();it++)int main()it!= v.end();it++)show(v);

2025-12-23 16:18:00 1245

空空如也

空空如也

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

TA关注的人

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