自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 库制作与原理深度解析

文章摘要:本文系统介绍了程序库的开发与应用技术,主要内容包括:1) 库的分类与区别,对比静态库和动态库在链接时机、文件独立性等方面的差异;2) 详细展示静态库和动态库的制作流程,重点说明动态库的-fPIC和-shared关键参数;3) 提供库使用技巧,包括编译链接选项和动态库加载问题的解决方案;4) 深入解析ELF文件结构和程序加载原理,阐述GOT/PLT机制;5) 介绍进程地址空间布局和动态库加载过程;6) 针对嵌入式开发给出交叉编译和资源优化的实用建议。全文结合具体命令示例,是一份全面的库开发技术指南。

2025-08-10 15:59:00 154

原创 Linux文件系统基石:透彻理解inode及其核心作用

摘要:inode是Linux文件系统的核心数据结构,存储文件元数据而非内容本身。每个inode有唯一编号,包含文件类型、权限、所有者、大小、时间戳等关键信息。硬链接共享inode,软链接则是独立文件。通过df -i和stat命令可查看inode使用情况。理解inode对诊断磁盘空间、优化性能以及嵌入式开发至关重要,是Linux存储管理的基础。掌握inode机制有助于深入理解文件查找、链接操作和系统优化。

2025-08-09 21:51:42 239

原创 Python 文件操作完全指南:从基础到实践

摘要:Python文件操作是数据处理的重要基础,主要包括打开、读写和关闭三个核心步骤。文章详细介绍了open()函数的使用方法,包括文件路径、模式(r/w/a等)和编码设置;讲解了read()、write()等读写操作及with语句的自动关闭优势;阐述了文件指针操作(seek/tell)和二进制文件处理方法;通过统计行数、内容替换等示例展示实际应用。特别强调要合理管理文件资源,推荐使用with语句避免资源泄漏,为后续文件处理开发打下基础。

2025-07-30 00:53:24 704

原创 我的创作纪念日

技术博客创作的心路历程:从被动记录到主动分享,作者回顾了从最初为完成作业写博客,到发现能帮助他人解决问题的转变过程。通过分享嵌入式开发中的实战经验(如GPIO配置、串口调试),不仅帮助了293位读者,也为自己建立了可回溯的知识库。创作已成为学习的一部分,通过写作梳理知识体系,解决遗忘问题。未来希望这些记录能成为更系统的开发指南,在帮助他人的同时见证自己的成长。这段始于羞涩的文字之旅,因能实际解决问题而变得意义非凡。

2025-07-26 09:32:21 339

原创 Linux学习笔记—进程的理解|fork机制|僵尸进程

文章摘要:本文详细解析Linux fork系统调用和僵尸进程处理。首先介绍fork的工作原理,包括进程复制机制和返回值处理,给出基础代码示例。重点分析僵尸进程的定义、产生条件及危害,提供监控方法和三种解决方案(父进程等待、忽略信号、双重fork)。最后展示进程状态全景图,并提出最佳实践建议:检查fork返回值、明确进程分工、及时回收子进程、处理孤儿进程及使用进程池。全文约150字,涵盖关键概念和实用解决方案。

2025-07-13 13:18:40 287

原创 MLX90640 热成像传感器在瑞芯微elf2开发板 ROS2humble 中的完整部署指南

摘要:本文详细介绍了在ROS2环境中部署MLX90640热成像传感器的完整流程。主要内容包括:1. 创建ROS2工作空间并获取功能包源码;2. 配置I2C通信接口和权限设置;3. 编写CMakeLists.txt和节点文件实现热成像数据采集;4. 编译功能包并解决依赖问题;5. 启动节点并通过rqt_image_view查看实时热成像;6. 提供常见问题解决方案,如I2C权限冲突、库版本不兼容等。该方案在Ubuntu 22.04和ROS2 Humble环境下验证通过,成功实现了32×24分辨率的热成像数据采

2025-06-28 17:03:43 993

原创 基于 瑞芯微elf2 开发板(rk3588)的 MLX90640 热像仪移植部署全流程

本文记录了在Ubuntu 22.04开发板上实现MLX90640红外传感器驱动适配与图形化显示的全过程。主要内容包括:1)系统环境配置,安装I2C工具和SDL2图形库等必要依赖;2)代码移植与编译,整合传感器驱动和图形渲染逻辑;3)权限配置,将用户加入i2c组确保设备访问权限;4)通过SSH+X11转发实现远程图形显示,使用MobaXterm进行调试;5)常见问题排查,涉及I2C通信、图形库依赖和权限问题等解决方案。整个过程注重实操性,为开发者提供了完整的实施参考。

2025-06-27 18:28:14 851

原创 ROS 2 中 Astra Pro 相机与 YOLOv5 检测功能编译启动全记录

本文介绍了在ROS2环境下实现AstraPro相机与YOLOv5目标检测联动的完整流程。主要内容包括:1) 编译AstraPro相机功能包和YOLOv5 Rockchip检测包的操作步骤与参数配置;2) 启动相机节点和检测节点的具体方法;3) 常用调试指令汇总,如查看话题发布频率、保存检测图像等;4) 完整流程指令速查表。该方案利用Rockchip NPU加速推理,适用于机器人视觉和目标跟踪等场景,通过并行编译和指定参数优化了编译效率,并提供了详细的日志验证方法。

2025-06-22 16:58:19 449 2

原创 瑞芯微elf2开发板(rk3588)实现ros2humble下部署yolov5模型与Astrapro相机集成实现目标检测

随手记录一下,有时间了再完善torch这些核心库,支撑模型转换、推理。

2025-06-21 17:48:16 482

原创 OpenCV复习笔记

本文摘要:OpenCV图像处理核心知识总结,涵盖图像读取、基础操作、颜色空间转换、几何变换、阈值处理等关键内容。重点包括:1)静态/动态图像读取方法;2)鼠标交互绘制和颜色通道操作;3)5种阈值处理方法对比;4)轮廓检测全流程(预处理→检测→分析→绘制);5)作业常见场景应用(如作业1的矩形绘制、作业2的多变换组合、作业3的轮廓分析)。复习建议以三次作业代码为实践基础,重点掌握imread、cvtColor、threshold、findContours等高频API的参数和应用场景。(149字)

2025-06-19 23:09:47 659

原创 Linux 核心知识点整理(高频考点版)

本文总结了Linux系统开发中的核心知识点:1. GCC编译流程分为预处理、编译、汇编、链接四个严格顺序的阶段,需掌握关键编译选项。2. 进程与线程部分重点解析了进程状态、创建方式(fork/wait)及pthread线程库的关键操作函数。3. 内存管理区分了堆栈在分配方式、连续性、存储内容等方面的本质差异。4. 文件权限采用10位格式表示,网络通信需掌握TCP/UDP在连接性、可靠性等方面的关键区别。5. 补充了设备文件命名、进程通信方式等高频考点。这些内容涵盖了Linux系统编程笔试/面试的主要考察范围

2025-06-19 17:36:27 522

原创 Makefile 学习笔记

Makefile是Linux编程中管理项目编译的核心工具,特别适用于多文件复杂项目。它通过自动化编译流程、增量编译、依赖管理等功能显著提升开发效率。相比直接使用gcc命令,Makefile在多文件项目、团队协作和复杂操作方面具有明显优势:能自动追踪文件改动、复用编译规则、统一团队标准,并支持伪目标实现清理等辅助操作。对于简单单文件项目,gcc命令足够便捷,但当项目复杂度增加时,Makefile就成为规范化和高效管理的必备工具,是Linux编程进阶的关键技能。

2025-06-12 23:32:59 531

原创 stm32f103c8t6驱动LCD1602(iic版)

板子:stm32f103c8t6最小系统板 屏幕:LCD1602(iic版) 杜邦线八根(四根连stlink烧录程序,四根连lcd1602),懒得画图了,,按键改时间功能后面再加,先写个简单的利用RTC显示时间的。其他所需要的库请自行添加。

2025-06-06 02:42:52 247

原创 ROS 2 环境下使用 Astra Pro 深度相机实现目标距离检测及远程可视化全流程总结

### **摘要** 本文详细记录了在ROS 2 Humble环境下,通过Orbbec Astra Pro深度相机实现目标距离检测,并利用PuTTY+Xming工具链在Windows主机上远程可视化相机画面的完整流程。首先介绍了硬件连接与软件环境搭建,包括开发板驱动安装、Windows端X11转发配置;其次阐述了相机节点启动、RViz2画面显示及深度数据获取的关键步骤;最后提供了基于深度图像的距离检测节点开发示例,涵盖代码编写、编译与运行方法。文中还总结了常见问题排查方案(如深度值异常、图形界面转发失

2025-06-04 20:20:38 1176

原创 在 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 552

原创 AstraSDK 在瑞芯微elf2(rk3588)开发板( 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 696

原创 Linux学习笔记|GCC编译指令基础|静动态库|makefile

【代码】Linux学习笔记|GCC编译指令基础|静动态库|makefile。

2025-05-18 14:44:16 438

原创 基于RK3588的智慧农场系统开发|RS485总线|华为云IOT|node-red|MQTT

本文详细介绍了基于RS485总线和MQTT协议的传感器数据采集与传输系统的实现流程。系统采用总线型拓扑结构,通过Modbus协议与多个传感器通信,配置了主从架构和通信参数(波特率、数据位、停止位等)。传感器数据通过RS485总线采集后,使用C++程序解析,并通过MQTT协议发布到本地和华为云IoT平台。文章还提供了硬件连接、通信协议配置、软件实现流程的详细步骤,并强调了电气安全、通信稳定性和错误处理的重要性。最后,介绍了如何通过Node-RED仪表盘展示数据,并提供了连接华为云IoT平台的具体代码示例和常见

2025-05-17 01:12:17 2301 1

原创 ROS2学习笔记|C++ 实现 ROS 2 订阅与发布功能的完整流程

我使用的是humble版本。

2025-05-04 17:47:42 635 1

原创 ROS2学习笔记|Python实现订阅消息并朗读的详细步骤

本教程将详细介绍如何使用 ROS 2 实现一个节点订阅另一个节点发布的消息,并将接收到的消息通过espeakng库进行朗读的完整流程。以下步骤假设你已经安装好了 ROS 2 环境(以 ROS 2 Humble 为例),并熟悉基本的 Linux 操作。注意:本文在上一篇的基础之上进阶,所以请先参考上一篇《。。

2025-05-03 18:09:14 785

原创 ROS2学习笔记|创建工作空间并打印文件内容

命令用于编译工作空间,首次执行时会自动初始化工作空间,创建编译所需的文件和目录。解释:该命令让系统识别工作空间中的功能包和节点等资源。函数初始化 ROS 2,创建节点实例,调用文件读取方法,最后销毁节点并关闭 ROS 2 环境。解释:重新编译工作空间,使新添加或修改的代码生效。:用于配置功能包的构建和安装,包括定义可执行文件的入口点等。命令用于创建目录,如果目录已存在则不报错。目录(存放安装后的文件,包括可执行文件、库文件等)和。:记录功能包的元信息,如名称、版本、依赖等。的工作空间目录,并进入该目录,

2025-05-03 16:08:00 1080

原创 ROS学习笔记之《ROS里那些专有名词》

节点通过话题进行通信,而这些节点和相关的资源(如配置文件、启动脚本等)被组织在功能包中。一个功能包可以包含多个节点,这些节点可以通过话题相互协作,共同完成功能包所定义的任务。例如,在一个机器人的 SLAM(同步定位与地图构建)功能包中,可能包含一个激光雷达数据采集节点、一个地图构建节点和一个定位节点,它们通过不同的话题进行数据交换,最终实现 SLAM 的功能。话题,当有新消息发布时,会调用。节点每隔 0.5 秒就会向。

2025-05-03 13:36:50 571

原创 使用功能包组织C++节点的具体教程

通过以上步骤,成功使用功能包组织了一个 C++ 节点。可以按照类似的方法在功能包中添加更多的节点和功能,同时可以根据需要在中添加更多的依赖项,在中配置更复杂的编译和安装规则。

2025-04-25 19:34:39 484

原创 CMake和make的理解

cmake和make是在 C/C++ 项目构建过程中常用的工具,它们通常配合使用来完成从源代码到可执行文件的编译过程,下面为你详细介绍它们的执行过程。

2025-04-25 16:35:25 418

原创 ROS2学习笔记

记录ROS的学习过程。

2025-04-24 21:33:43 137

原创 配置 C/C++ 语言智能感知(IntelliSense)的 c_cpp_properties.json 文件内容

配置 C/C++ 语言智能感知(IntelliSense)的。

2025-04-24 21:31:05 241

原创 Linux学习笔记|入门指令

man [指令名称]more [文件名]less [文件名]head [文件名]tail [文件名]date +[格式]

2025-04-21 21:12:15 697

原创 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 919

原创 Linux入门学习笔记

home/userusertestfile.txtfile.txt可以发现路径都是从 /开头的,这个 / 实际上就表示根目录 而后面的 / 则只是单纯的分隔。

2025-04-15 15:30:36 910

原创 C++学习笔记之 模板|函数模板|类模板

例如,实现交换两个变量值的函数模板intintT1T2intPoint。

2025-04-04 18:07:16 378

原创 C++学习笔记 new/delete相关知识点|与malloc/free的区别

此代码中,创建对象时调用构造函数,delete obj释放对象时调用析构函数。对于用new[]分配的数组,需用delete[]释放,以保证数组中每个元素的析构函数(对自定义类型)都能被调用。在 C++ 面试中,newdelete。

2025-04-04 00:58:35 366

原创 C++学习笔记 | malloc calloc realloc的作用以及区别

初始化malloc分配的内存不会被初始化,其内容是未定义的;而calloc会把分配的内存初始化为 0。参数malloc只需要一个参数,即要分配的内存字节数;calloc需要两个参数,分别是元素个数和每个元素的大小;realloc需要两个参数,分别是指向已分配内存的指针和调整后内存的新大小。用途malloc适用于需要分配内存但不需要初始化的场景;calloc适用于需要分配内存并初始化为 0 的场景;realloc适用于需要调整已分配内存大小的场景。

2025-04-03 20:59:36 700

原创 C++学习笔记之内存管理

仅用于记录学习理解。

2025-04-03 14:26:11 322

原创 C++入门练习之 给出年分m和一年中的第n天,算出第n天是几月几号

闰年:是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。地球绕太阳公转一周的实际时间约为 365.2422 天 ,而平年按 365 天计算,每年会少约 0.2422 天,日积月累差距会增大,所以每四年增加一天,这一年就是闰年,让历法时间更接近天文时间。平年:指阳历没有闰日或者农历没有闰月的年份,是历法中的常规年份,用于标记时间流逝。

2025-04-03 14:00:54 285

原创 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 115

原创 C++学习笔记之 类和对象| static成员

突破类域就可以访问静态成员,可以通过类名::静态成员 或者 对象.静态成员 来访问静态成员变量。静态成员也是类的成员,受public、protected、private 访问限定符的限制。静态成员变量为所有类对象所共享,不属于某个具体的对象,不存在对象中,存放在静态区。静态成员函数中可以访问其他的静态成员,但是不能访问⾮静态的,因为没有this指针。⽤static修饰的成员函数,称之为静态成员函数,静态成员函数没有this指针。⾮静态的成员函数,可以访问任意的静态成员变量和静态成员函数。

2025-04-03 01:23:09 871

原创 C++学习笔记之《类和对象》之 静态成员变量的特性

声明:告知编译器某个变量或函数的存在,以及它的类型和名称,但不分配内存空间。定义:不仅声明了变量或函数,还为其分配了内存空间。由于涉及到了static。

2025-04-02 13:28:48 419

原创 Python入门知识点复习

【代码】Python入门知识点复习。

2025-03-28 00:36:31 116

原创 python入门代码练习之人生模拟器|break continue|for range

break:彻底终止循环,不再执行后续的循环迭代。continue:仅跳过当前循环的剩余部分,接着进行下一次循环迭代。

2025-03-26 12:43:18 334

原创 OpenCV 颜色空间:原理与操作指南

OpenCV 的颜色空间转换功能为计算机视觉应用提供了强大的支持。通过理解不同颜色空间的原理,我们可以根据具体需求选择合适的颜色空间进行图像处理。无论是图像分割、目标检测还是图像增强,颜色空间转换都是不可或缺的工具。希望本文能帮助读者更好地掌握 OpenCV 中颜色空间的操作,在计算机视觉领域取得更多成果。

2025-03-06 16:05:43 597

基于RK3588的智慧农场系统开发-RS485总线-华为云IOT-node-red-MQTT

基于RK3588的智慧农场系统开发-RS485总线-华为云IOT-node-red-MQTT

2025-05-15

基于RK3588的智慧农场系统开发-RS485总线-华为云IOT-node-red-MQTT

node-red流

2025-05-15

CubeMX stm32编程实现遥控小车-舵机控制-电机控制-无线传输-摇杆控制-嵌入式必做入门级项目

没有整理,但全,遥控器和小车的都在里面了,分为c8t6版本和一个什么型号的板子我搞忘了

2025-05-06

FreeRTOS动态静态创建任务-二值信号量-队列-内存管理

FreeRTOS动态静态创建任务-二值信号量-队列-内存管理

2024-11-30

空空如也

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

TA关注的人

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