- 博客(63)
- 收藏
- 关注
原创 Makefile 学习笔记
Makefile是Linux编程中管理项目编译的核心工具,特别适用于多文件复杂项目。它通过自动化编译流程、增量编译、依赖管理等功能显著提升开发效率。相比直接使用gcc命令,Makefile在多文件项目、团队协作和复杂操作方面具有明显优势:能自动追踪文件改动、复用编译规则、统一团队标准,并支持伪目标实现清理等辅助操作。对于简单单文件项目,gcc命令足够便捷,但当项目复杂度增加时,Makefile就成为规范化和高效管理的必备工具,是Linux编程进阶的关键技能。
2025-06-12 23:32:59
501
原创 stm32f103c8t6驱动LCD1602(iic版)
板子:stm32f103c8t6最小系统板 屏幕:LCD1602(iic版) 杜邦线八根(四根连stlink烧录程序,四根连lcd1602),懒得画图了,,按键改时间功能后面再加,先写个简单的利用RTC显示时间的。其他所需要的库请自行添加。
2025-06-06 02:42:52
203
原创 ROS 2 环境下使用 Astra Pro 深度相机实现目标距离检测及远程可视化全流程总结
### **摘要** 本文详细记录了在ROS 2 Humble环境下,通过Orbbec Astra Pro深度相机实现目标距离检测,并利用PuTTY+Xming工具链在Windows主机上远程可视化相机画面的完整流程。首先介绍了硬件连接与软件环境搭建,包括开发板驱动安装、Windows端X11转发配置;其次阐述了相机节点启动、RViz2画面显示及深度数据获取的关键步骤;最后提供了基于深度图像的距离检测节点开发示例,涵盖代码编写、编译与运行方法。文中还总结了常见问题排查方案(如深度值异常、图形界面转发失
2025-06-04 20:20:38
954
原创 在 Ubuntu 虚拟机中实现 HTML 表单与 C 语言 HTTP 服务器交互
本实验在Ubuntu虚拟机环境下,通过C语言实现了一个简单的HTTP服务器,用于托管HTML表单页面并处理表单数据提交。首先,创建了一个HTML表单页面(xunfei.html),包含姓名和年龄的输入字段,并通过POST方法提交数据到服务器的/commit路径。接着,编写了C语言服务器代码(server.c),使用socket和epoll实现并发连接处理,支持GET请求返回HTML页面,以及POST请求接收并打印表单数据。操作步骤包括创建项目目录、编写文件、编译服务器、运行服务器,并通过curl或浏览器进行
2025-05-23 17:39:41
524
原创 AstraSDK 在 aarch64 开发板上的安装与示例运行全记录
在elf2开发板(aarch64架构)上成功集成Orbbec Astra Pro深度相机的过程中,首先需下载并安装匹配的Astra SDK(v2.1.3)。安装步骤包括解压SDK、赋予权限、执行安装脚本,并配置环境变量。随后,通过安装SFML图形库和CMake工具,编译并运行SDK提供的示例程序,如SimpleDepthViewer-SFML和DepthReaderEventCPP,以验证相机功能。常见问题包括未解压压缩包、可执行文件路径错误、缺少库文件及USB设备权限不足等,均提供了相应的解决方法。通过以
2025-05-22 15:23:12
632
原创 基于RK3588的智慧农场系统开发|RS485总线|华为云IOT|node-red|MQTT
本文详细介绍了基于RS485总线和MQTT协议的传感器数据采集与传输系统的实现流程。系统采用总线型拓扑结构,通过Modbus协议与多个传感器通信,配置了主从架构和通信参数(波特率、数据位、停止位等)。传感器数据通过RS485总线采集后,使用C++程序解析,并通过MQTT协议发布到本地和华为云IoT平台。文章还提供了硬件连接、通信协议配置、软件实现流程的详细步骤,并强调了电气安全、通信稳定性和错误处理的重要性。最后,介绍了如何通过Node-RED仪表盘展示数据,并提供了连接华为云IoT平台的具体代码示例和常见
2025-05-17 01:12:17
2188
1
原创 ROS2学习笔记|Python实现订阅消息并朗读的详细步骤
本教程将详细介绍如何使用 ROS 2 实现一个节点订阅另一个节点发布的消息,并将接收到的消息通过espeakng库进行朗读的完整流程。以下步骤假设你已经安装好了 ROS 2 环境(以 ROS 2 Humble 为例),并熟悉基本的 Linux 操作。注意:本文在上一篇的基础之上进阶,所以请先参考上一篇《。。
2025-05-03 18:09:14
686
原创 ROS2学习笔记|创建工作空间并打印文件内容
命令用于编译工作空间,首次执行时会自动初始化工作空间,创建编译所需的文件和目录。解释:该命令让系统识别工作空间中的功能包和节点等资源。函数初始化 ROS 2,创建节点实例,调用文件读取方法,最后销毁节点并关闭 ROS 2 环境。解释:重新编译工作空间,使新添加或修改的代码生效。:用于配置功能包的构建和安装,包括定义可执行文件的入口点等。命令用于创建目录,如果目录已存在则不报错。目录(存放安装后的文件,包括可执行文件、库文件等)和。:记录功能包的元信息,如名称、版本、依赖等。的工作空间目录,并进入该目录,
2025-05-03 16:08:00
979
原创 ROS学习笔记之《ROS里那些专有名词》
节点通过话题进行通信,而这些节点和相关的资源(如配置文件、启动脚本等)被组织在功能包中。一个功能包可以包含多个节点,这些节点可以通过话题相互协作,共同完成功能包所定义的任务。例如,在一个机器人的 SLAM(同步定位与地图构建)功能包中,可能包含一个激光雷达数据采集节点、一个地图构建节点和一个定位节点,它们通过不同的话题进行数据交换,最终实现 SLAM 的功能。话题,当有新消息发布时,会调用。节点每隔 0.5 秒就会向。
2025-05-03 13:36:50
555
原创 使用功能包组织C++节点的具体教程
通过以上步骤,成功使用功能包组织了一个 C++ 节点。可以按照类似的方法在功能包中添加更多的节点和功能,同时可以根据需要在中添加更多的依赖项,在中配置更复杂的编译和安装规则。
2025-04-25 19:34:39
438
原创 CMake和make的理解
cmake和make是在 C/C++ 项目构建过程中常用的工具,它们通常配合使用来完成从源代码到可执行文件的编译过程,下面为你详细介绍它们的执行过程。
2025-04-25 16:35:25
362
原创 配置 C/C++ 语言智能感知(IntelliSense)的 c_cpp_properties.json 文件内容
配置 C/C++ 语言智能感知(IntelliSense)的。
2025-04-24 21:31:05
211
原创 Linux学习笔记|入门指令
man [指令名称]more [文件名]less [文件名]head [文件名]tail [文件名]date +[格式]
2025-04-21 21:12:15
682
原创 ELF2-RK3588 本地部署 DeepSeek 教程
pip install rkllm_toolkit-1.1.4-cp310-cp310-linux_x86_6 4.whl -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple some-package 命令重新安装。本次部署使用的是瑞芯微的elf2开发学习板,本文仅记录部署的过程以及遇到的问题便于日后再次使用。(激活虚拟环境后,在该环境下安装的包将仅在该环境中可用,从而避免了不同项目之间的依赖冲突)官方说的,但我遇见的是别的问题哈哈哈。
2025-04-21 11:26:39
848
原创 Linux入门学习笔记
home/userusertestfile.txtfile.txt可以发现路径都是从 /开头的,这个 / 实际上就表示根目录 而后面的 / 则只是单纯的分隔。
2025-04-15 15:30:36
900
原创 C++学习笔记 new/delete相关知识点|与malloc/free的区别
此代码中,创建对象时调用构造函数,delete obj释放对象时调用析构函数。对于用new[]分配的数组,需用delete[]释放,以保证数组中每个元素的析构函数(对自定义类型)都能被调用。在 C++ 面试中,newdelete。
2025-04-04 00:58:35
361
原创 C++学习笔记 | malloc calloc realloc的作用以及区别
初始化malloc分配的内存不会被初始化,其内容是未定义的;而calloc会把分配的内存初始化为 0。参数malloc只需要一个参数,即要分配的内存字节数;calloc需要两个参数,分别是元素个数和每个元素的大小;realloc需要两个参数,分别是指向已分配内存的指针和调整后内存的新大小。用途malloc适用于需要分配内存但不需要初始化的场景;calloc适用于需要分配内存并初始化为 0 的场景;realloc适用于需要调整已分配内存大小的场景。
2025-04-03 20:59:36
637
原创 C++入门练习之 给出年分m和一年中的第n天,算出第n天是几月几号
闰年:是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。地球绕太阳公转一周的实际时间约为 365.2422 天 ,而平年按 365 天计算,每年会少约 0.2422 天,日积月累差距会增大,所以每四年增加一天,这一年就是闰年,让历法时间更接近天文时间。平年:指阳历没有闰日或者农历没有闰月的年份,是历法中的常规年份,用于标记时间流逝。
2025-04-03 14:00:54
263
原创 C++学习笔记之实现求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句
【代码】C++学习笔记之实现求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句。
2025-04-03 01:31:58
104
原创 C++学习笔记之 类和对象| static成员
突破类域就可以访问静态成员,可以通过类名::静态成员 或者 对象.静态成员 来访问静态成员变量。静态成员也是类的成员,受public、protected、private 访问限定符的限制。静态成员变量为所有类对象所共享,不属于某个具体的对象,不存在对象中,存放在静态区。静态成员函数中可以访问其他的静态成员,但是不能访问⾮静态的,因为没有this指针。⽤static修饰的成员函数,称之为静态成员函数,静态成员函数没有this指针。⾮静态的成员函数,可以访问任意的静态成员变量和静态成员函数。
2025-04-03 01:23:09
860
原创 C++学习笔记之《类和对象》之 静态成员变量的特性
声明:告知编译器某个变量或函数的存在,以及它的类型和名称,但不分配内存空间。定义:不仅声明了变量或函数,还为其分配了内存空间。由于涉及到了static。
2025-04-02 13:28:48
386
原创 python入门代码练习之人生模拟器|break continue|for range
break:彻底终止循环,不再执行后续的循环迭代。continue:仅跳过当前循环的剩余部分,接着进行下一次循环迭代。
2025-03-26 12:43:18
310
原创 OpenCV 颜色空间:原理与操作指南
OpenCV 的颜色空间转换功能为计算机视觉应用提供了强大的支持。通过理解不同颜色空间的原理,我们可以根据具体需求选择合适的颜色空间进行图像处理。无论是图像分割、目标检测还是图像增强,颜色空间转换都是不可或缺的工具。希望本文能帮助读者更好地掌握 OpenCV 中颜色空间的操作,在计算机视觉领域取得更多成果。
2025-03-06 16:05:43
555
原创 物联网通信应用案例之《智慧农业》
在智慧农业方面,一般的应用场景为可以自动检测温度湿度等一系列环境情况并且可以自动做出相应的处理措施如简单的浇水和温度控制等,且数据情况可远程查看,以及用户可以实现远程控制。
2025-02-26 10:54:00
1286
2
原创 C++入门《类和对象》之《运算符重载》详解|成员函数重载/非成员函数重载
C++ 中,运算符重载是一种特殊的函数,它允许程序员为自定义的数据类型(如类和结构体)重新定义运算符的行为,使得这些运算符能够像处理内置数据类型一样处理自定义类型的数据。下面将从多个方面详细讲解 C++ 里的运算符重载。
2025-02-18 21:35:18
1003
原创 C++入门《类和对象》之《拷贝构造函数》详解
自定义类型传值传参和传值返回会调用拷贝构造。return p;这里函数返回Person对象p时,会调用Person的拷贝构造函数创建返回值副本。
2025-02-15 23:37:15
633
原创 C++入门之《类和对象中》的构造函数和析构函数
构造函数是一种特殊的成员函数,它在创建对象时自动调用,主要用于对象的初始化操作,比如为对象的数据成员赋初值等。析构函数也是一种特殊的成员函数,它在对象的生命周期结束时自动调用,主要用于释放对象所占用的资源,比如动态分配的内存、打开的文件等。
2025-02-15 11:36:41
649
原创 C++入门之this指针
指针是一个隐含于每一个非静态成员函数中的特殊指针。它指向调用该成员函数的那个对象,借助。指针,成员函数能够知晓是哪个对象在调用它,从而可以访问该对象的成员变量和成员函数。,也就是返回调用该函数的对象的引用。这在实现链式调用时特别有用。当成员函数的参数名与成员变量名相同时,就可以使用。指针来明确访问的是成员变量。就能清晰地表明操作的是成员变量。类的构造函数里,参数。与成员变量同名,借助。
2025-02-10 12:50:25
197
原创 C++入门 之 类和对象详细讲解|类域|构造函数|访问控制
类是一种用户自定义的数据类型,它将数据(成员变量)和操作这些数据的函数(成员函数)封装在一起。类的定义通常使用class// 类的成员// 可以是成员变量、成员函数例如,定义一个表示矩形的类public:// 成员变量// 成员函数在这个例子中,Rectangle是类名,length和width是成员变量,area()是成员函数。public是访问控制修饰符,表示这些成员可以被类外部的代码访问。
2025-02-10 12:18:54
1091
原创 C++入门基础之命名空间|using声明|缺省参数
命名空间是C++中的一种机制,用于将相关的标识符(包括函数、类、变量、对象、结构体、枚举等)分组在一起,以避免命名冲突。它可以看作是一个逻辑容器,将具有相似功能或来自同一模块的元素组织在一个单独的区域内。在不同的命名空间中可以使用相同的标识符而不会产生混淆。
2025-01-18 23:57:40
952
原创 opencv训练模型时用描述文件创建样本为0,创建失败报错pos\pos.txt(1) : parse error
查了很多别的博主的资料试了很多方法没成功, 别的方法懒得写了(确保路径没问题,描述文件内的描述格式正确。),只记录一下我成功了的方法,打开样本的描述文件另存为将编码格式改为UTF-8就成功了。
2025-01-06 14:55:33
136
原创 【FreeRTOS】基础实验代码整理|CubeMX-Keil5|动态静态创建任务|二值信号量|队列|内存管理
先更新前七个,对照这个表按顺序都在云盘压缩包里,关键代码都有注释笔记。有需要可以看看,和我板子一样的可以直接下载使用。最近在复习学过的FreeRTOS里的一些基础实验,在这整理记录一下。
2024-11-30 00:20:01
249
基于RK3588的智慧农场系统开发-RS485总线-华为云IOT-node-red-MQTT
2025-05-15
CubeMX stm32编程实现遥控小车-舵机控制-电机控制-无线传输-摇杆控制-嵌入式必做入门级项目
2025-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人