自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 13.泛型编程 STL技术

template<typename T> 声明一个模版,告诉编译器后面的代码中紧跟着的T是一个通用数据类型不要报错 template声明创建模版 typename表明后面的符号是一种数据类型 可用class代替。void myswap(T &a,T &b) 自动类型推导的情况下 声明了了模版则函数中必须指定T。巧用swap收缩内存 vector<int>(v).swap(v);通过区间构造容器 vector<int>v2(v1.begin(),v1.end());

2025-11-29 08:06:37 400

原创 12.C++编译相关

g++ -E test.cpp -o test.i -E是仅预处理 指定源文件 -o test.i是指定输出文件名 后面也一样。include_directories(/usr/include ./include) 向工程添加多个头文件搜索路径 相当于g++的-I。link_directories(/usr/lib ./lib) 向工程添加多个库文件搜索路径 相当于g++的-L。set(SRC a.cpp b.cpp) 显式定义变量SRC的值为 a.cpp b.cpp。

2025-11-29 07:42:56 296

原创 11.C++文件操作

ofs.open("路径",打开方式);打开方式有ios::in,out,ate,app,trunc,binary。1.文本文件 ASCII码形式。fstream 读写。2.二进制文件 二进制形式。ofstream 写。ifstream 读。ofs<<"写入的数据";头文件<fstream>

2025-11-29 07:42:23 131

原创 10.C++多态

cat类继承Animal类时 且两者都有自己的speak函数 子类调用这个全局函数的时候(子类与父类是同一个类型 所以能调用同一个全局函数)在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容,因此可将虚函数改为纯虚函数。实现:类名::~类名(){}多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时不会调用到子类的析构代码。抽象类的特点:无法实例化对象,子类必须重写抽象类中的纯虚函数,否则也属于抽象类。当子类重写父类的虚函数 子类中的虚函数表会替换成子类的虚函数地址。

2025-11-28 15:39:14 274

原创 9.C++继承

父类中私有成员属性是被编译器给隐藏了,因此是访问不到 但确实是被继承了(占了内存空间)横列为父类中的成员的权限 竖列为继承时的继承权限 表中表示继承后成员的属性情况。语法:class 子类:继承方式 父类1,继承方式 父类2,......保护 保护 保护 不可访问父类的成员。子类与父类出现同名的成员函数时,子类会隐藏父类中所有同名函数。访问父类同名成员-加作用域(父类中的重载也要加)通过对象访问 子类对象.父类::成员。通过类名访问 子类::父类::成员。

2025-11-28 15:38:43 382

原创 8.运算符重载 (也可发生函数重载)

不能利用成员函数重载 因为无法实现cout在左侧(类名一定在左侧 因为是类的成员函数 p.operator<<(cout) 简化: p<<cout)其中ostream是cout的类型 后面的变量名称可以自定义 因为是引用传入起的别名 起什么名不影响其原本的功能 引用传入是因为输出流唯一。即可cout<<p<<endl;通过自己写成员函数实现两个对象相加属性后返回新的对象(通过成员函数重载"+"号)使用:cout<<p;但是不能写成cout<<p<<endl;也可以通过全局函数重载"+"

2025-11-14 08:04:04 413

原创 7.类和对象

(此时若test这个成员函数中有成员变量 又因为this为NULL 会报错 有成员变量的最好加个this == NULL的判断提高代码的健壮性 其实就是防止在空指针访问成员函数的时候访问到有成员变量的成员函数)在类的非静态成员函数中返回对象本身可以使用 return *this 可连续调用(链式编程) P2.test().test().test();成员函数做友元 在想访问的类中加入 friend+带作用域的函数声明 friend void person::test();

2025-11-14 08:03:30 278

原创 6.C++拷贝

在释放内存的时候,其中一个指针清空且释放内存后,另一个还没释放的指针释放时又会重复释放一遍已经释放过的地址的内存就会使程序崩溃。如指针的浅拷贝会让两个指针指向同一片内存(即两者存放的是相同的内存地址)深拷贝:在堆区申请空间 进行拷贝 (用 new)浅拷贝会出现内存重复释放的问题。浅拷贝:简单的赋值操作。

2025-11-13 07:51:40 112

原创 5.C++函数

条件:同一个作用域下 函数名相同 参数的类型或者个数或者顺序不同(返回值不同不作为重载条件) 引用也属于参数的类型不同的重载(int &a 和const int &a是两种数据类型)函数的占位参数(只写一个数据类型 不写变量名 没有默认值的话也必须为其传入实参)函数的形参可以有默认值 但是从第一个开始有默认的参数后每个参数也都必须有默认值。但是在参数数量不同的时候参数又有默认值就会出现二义性。调用时写f1(10)编译器也不知道该调用哪个。函数的声明和实现只能有一个有默认参数。占位参数也可以有默认值。

2025-11-13 07:51:08 128

原创 4.C++引用

const int &a=c 但是将c强转int了相当于 const int temp = c;生成一个临时的整型常量 const int &a = temp;引用的类型必须和所引用的类型严格匹配,且不能与字面值或者某个表达式的计算结果绑定在一起,但是 “常量引用” 是例外(只要被引用的类型能够转换为常量引用的类型)主要用于函数形参防止误操作 与值传递一个效果 但是引用比值传递省空间(作返回值时也是如此 不会返回一个副本而是返回本就有的变量的别名)相当于int* const ref=&a;

2025-11-12 08:13:06 370

原创 3.指针常量和常量指针及结构体

通过结构体指针访问结构体变量中的数据 只能使用'->' 不能使用'.'cons int* const p3=&a 指向与值都不能修改。int * const p=&a 定义时必须初始化。指针的指向可以修改 p=&b √。指针指向的地址的值不可修改 *p=20 X。const 修饰常量(指针常量,指针类型的常量)const修饰指针(常量指针,指向常量的指针)*******结构体*******指向的地址的值可以修改。结构体可以嵌套结构体。

2025-11-12 08:12:19 191

原创 2.命名空间namespaces

在大括号内定义的变量、函数、类等就属于该命名空间 命名空间内部引用可以直接使用函数、变量名称无需加命名空间前缀。命名空间可以合并 即可以定义多个相同的namespace xx{} 其中的内容是合并的(相同作用域)将std以内的所有内容引入目前的命名空间 调用时就无需加std前缀了。C++中引入命名空间来解决命名冲突的问题 简单来说就是定义了一个范围。多文件时定义命名空间 在头文件中声明在源文件中实现。

2025-11-11 09:25:00 290

原创 1.代码存储区

堆区 由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收 堆区先入后出 释放时先释放后指向的指针。栈区 由编辑器自动分配释放,存放函数的参数值,局部变量等(包括const修饰的)int *arr=new int[10] 这里的10是指数组长度用的是[]new 类型(初值) 返回值是一个地址 数组的话返回值就是首地址。不要返回局部变量的地址 局部执行完后会被释放 (有些编译器会暂时给你保留一次)用new在堆区中开辟数据 delete释放。

2025-11-11 09:23:48 179

原创 杂谈-点云配准

kd树是对数据在k维空间中划分的一种数据结构,主要用于多维空间关键数据的搜索 就是将空间划分为特定的几个部分,然后在特定部分进行相关搜索 是一个包含特定约束的二叉搜索树 对于范围搜索和最近邻搜索非常有用。点云配准的目的:对于任意qi∈S_source 在S_target中总能找到pi 满足pi=R*qj+t (R t为待求变量) 求点对间的对应关系。基于点与其邻域内的k个点之间的以及他们的法向量之间的几何关系,捕捉其邻域表面的变化情况以描述局部邻域的几何特征。

2025-11-06 14:44:39 359

原创 杂记-二极管 MOS管

比较器电路颤振的解决方法:输入端到输出端接一个电阻 输出端到电源间接一个电阻(回滞电路)二极管的电压钳位功能 与导通二极管并联的器件电压稳定为二极管的导通电压。稳压二极管是可以工作在反向击穿状态的 并且压降为固定值。电容两端的相对电压不能突变,但是两端可以同时突变。

2025-11-06 08:30:00 180

原创 电阻阻值计算

第一环(百位) 第二环(十位) 第三环(个位) 乘数环 误差环。如103 就是10x10的3次方=10kΩ。小数型:整数部分+R(小数点)+小数部分。整数型:第一第二位有效数字+乘数。直插电阻阻值可以看色环。如5R60=5.6Ω。

2025-11-06 08:28:49 174

原创 杂谈-四元数

第一部分 是一个特殊的四位旋转(对应到原点距离为1的四元数组成的四位超球) 第二部分是q2以q1的模的大小进行放缩。组成为1个实数+3个虚数(这3个维度都与实数轴垂直,并且这3个维度两两互相垂直) 且四个数(合起来)的模值为1。||q||=||w+xi+yj+zk||=(w²+x²+y²+z²)的算数平方根。四元数乘法没有交换律 可以理解为q1被作用了q2的变换或者反过来理解。四元数乘法 q1xq2=q1/||q1|| *||q1||*q2。三维空间的我们是无法想象出4维度空间的样子的。

2025-11-06 08:23:47 325

原创 杂谈-PLC

指向从DB350.DBX44.0开始的4个字节(DB350必须是非优化的DB块且包含有4字节长度的变量)DB 数据块 设置为优化时 地址由CPU自动分配 仅符号地址访问。FB 功能块FB=FC+DB。

2025-11-06 08:18:29 114

原创 机器人FTP作业文件上传

【代码】安川机器人FTP作业文件上传。

2025-10-22 16:42:26 124

原创 LWIP源码目录说明

│ └-----8个.h文件。│ └-----4个.h文件。├-----ipv4 与 IPv4 模块相关的源文件。│ └-----共27个.c.h文件。│ └-----32个.h文件。│ └-----3个.h文件。└-----6个.c文件。│ └-----8个.c文件。│ └-----5个.c文件。

2025-10-20 16:59:52 230

原创 LWIP通讯之PHY芯片LAN8720引脚详解

LAN8720A和LAN8720Ai的区别是工作温度不同,前者是商业级后者是工业级,LAN8720支持的接口是RMII。关于参考文档(英文)可去我的资源中取,无积分。

2025-10-17 14:53:04 479

原创 利用变换矩阵求点或点的移动量

不难看出如果要求点经过变换后对应的点是需要齐次变换矩阵(旋转矩阵加平移向量合成的4X4矩阵),而求点的变化量在另一个坐标系下的对应的变换量只需要旋转矩阵(3X3矩阵)求点的(矩阵相乘法)求变换量的(公式法)

2025-10-14 09:44:57 252

原创 旋转矩阵的相关理解(内旋外旋)

这里的XYZ和ZYX很明显不是同一个矩阵了,已经不是理解上的不同了而是实际相乘顺序的不同,不过他俩依然都可以从两个角度去理解,读者要理清理解上的变换次序和数学意义上的计算的次序的差异,一个是我们赋予数学矩阵的物理意义的理解角度,一个是实实在在的数学式子。上面说的是对于一个由不同旋转矩阵相乘合成的旋转矩阵的不同角度的理解,下面要说的是旋转矩阵实际应用,对于同一个坐标系,在其利用旋转进行变换时也遵循左乘(变换矩阵乘在坐标系左边)为绕固定坐标系,右乘(变换矩阵乘在坐标系右边)绕运动坐标系。写出来都是X*Y*Z。

2025-10-14 09:12:34 437

原创 GIT常用命令

git branch -r 查看远程所有分支。git branch -a 查看所有的分支。git branch 查看本地所有分支。

2025-10-09 11:00:57 264

原创 3.STM32MP1开发编译命令--虚拟机端(针对我当前环境的命令)

1.进入源码所在目录2.直接make--不会生成uImage,但是会编译设备树等。

2025-10-09 10:31:56 232

原创 2.Uboot常用命令(PC端MobaXterm)

从EMMC启动根文件系统 使能了WIFI则是mmcblk2p3。设置完一定要使用saveenv保存设置到emmc中!从网络加载内核和设备树(tftp)从网络挂载根文件系统。

2025-09-02 15:38:47 139

原创 1.linux源码移植到STM32MP157D开发板

复制一份.config 作为我们的默认配置文件打完补丁后的源码(linux-5.4.31文件夹)可以移动位置。

2025-09-02 15:29:57 485

原创 open3d相关API(点云配准相关)

以下配准仅适用于刚性配准(仅仅有平移和旋转变换,不能配准缩放)

2025-06-09 09:06:20 296

原创 FPGA PLL IP核配置

话不多说,直接上图,没有图的就按照默认配置,直接点击next。最后参照生成的实例化代码,在自己的模块中调用即可。

2024-12-27 11:19:37 395

原创 keil中右键GO To Definition报错解决

则是output的配置问题,在对应界面勾选Bowse Infomation即可。

2024-08-13 15:32:20 835

原创 11.Moveit API C++源码以及注释

我用的ROS版本为noetic(noetic页面无法打开),使用melodic页面的代码也可以运行。

2024-07-19 10:26:50 424

原创 10.ROS中对GPIO进行控制

要注意ROS会将find_package的PATH路径改为优先搜索ROS根目录下的ROS库,有时候会find不到GPIO库。首先,安装JetsonGPIO的C++库(如果超时,则去GitHub网站搜索JetsonGPIO)-DCMAKE_INSTALL_PREFIX=/usr # 选择基础安装目录。-DBUILD_EXAMPLES=ON # 选择创建samples。这个地方我也不知道咋弄通的,反复改了几次莫名其妙又好了。再执行安装语句安装库。

2024-07-05 18:21:00 457

原创 pip install包出现哈希错误解决

如图,当遇到此类错误时,多半是连接不稳定导致的校验失败。我们可以在PC端,或Ubuntu通过浏览器下载.whl安装文件:直接复制报错信息中的网址到浏览器即可弹出下载窗口。

2024-07-05 18:08:26 787

原创 9.ROS串口实例

【代码】3.ROS串口实例。

2024-06-30 18:47:24 334

原创 8.ROS串口安装和调试

安装串口调试助手。

2024-06-29 11:28:54 370

原创 7.ROS-Moveit安装、urdf文件制作、配置助手使用

ROS-Moveit是ROS的一个功能包,由一系列移动操作的功能包组成。是ROS使用位居前三位的功能包。目前在ROS1已经停止更新最新版本支持到Noetic Ubuntu20,但是Moveit包的功能体验还是melodic以及之前的版本更好一些。国内外知名企业都有自己的ROS包,像ABB,发那科等也提供了机械臂的ROS接口。并且这些接口是通用的,不同厂家和版本都能控制各种机器人。URDF是ROS中机器人模型描述文件。

2024-06-20 16:58:45 1964

原创 6.ROS的消息发布者与订阅者示例

Topic话题,是节点之间信息交换的方法,在向话题发生送消息的节点叫做发布者,接收消息的节点叫做订阅者。一个ROS程序中话题可以有很多个,一个话题中也可以有多个发布者和订阅者。一个订阅者可以订阅多个话题。同样 ,一个发布者也可以同时在多个话题中发送消息。

2024-03-11 11:54:40 1342

原创 cmaketool插件的自动扫描工作空间设置

点击左下角的齿轮,进入设置。搜索cmake:config。将不需要的取消打钩即可。

2024-03-10 17:37:27 588

原创 5.ROS创建节点

②然后打开vscode将包所在文件夹添加到工作空间,在新建的包的src目录下新建一个cpp文件并编写如下代码(注意main函数的第二个参数若自动生成时带const要删去,不然与ros::init的参数类型不匹配)Ctrl+C是无法终止while(true)的,因为它无法接收外部指令,所以我们选择ros::ok()作为循环的条件。其中节点名与ros::init()中的第三个参数一致, cpp与自己创建的cpp文件名一致。判断包的方式之一:包里必定有xml文件,可以使用roscd 包名,进入指定包的目录。

2024-03-10 17:30:07 899

原创 英伟达jetson nano第一次进入镜像配置

设置分辨率 xrandr –output HDMI-0 –mode “1920x1080”最好在设置中重新配置下 不然重启又得调。Ctrl+Alt+T启动终端。我所用产品为jetbot。

2024-03-10 11:24:59 764

LAN8720手册中文版

LAN8720手册中文版

2025-10-20

LAN8720A器件描述

解压即可无密码不要积分(因为直传显示资源已经存在)

2025-10-17

STM32F103ZET6移植FreeRTOS

STM32F103ZET6移植FreeRTOS

2024-03-04

知网CAJ阅读器安装包

知网CAJ阅读器安装包

2023-11-30

蓝桥杯嵌入式G431基础配置速成手册(含国赛内容)

蓝桥杯嵌入式赛道。开发板型号:G431开发板, PDF主要内容为一些基础配置的代码实现以及如何进行对应的的CUBEMX软件配置。 包含:数码管的段码值以及显示函数的封装(本质是操作移位寄存器)、 DS18B20(给好驱动的基础上进行实现)、DHT11(给好驱动的基础上进行实现)、单路ADC、双路ADC(一个ADC的多个通道)、单路多路(单通道和多通道)输入捕获、LCD坐标轴翻转(国赛有考到)、系统时钟的时钟树(最基本的)、RTC时钟模块、EEPROM可读写存储器、MCP4017可编程电阻、串口通信以及printf重定向和相关的中断的配置,定时器PWM波输出,更改占空比,定时器中断。以及外部中断EXTI和ADC按键等等

2023-11-23

蓝桥杯板子显示16色图片(无需积分)

​ 之前拿到蓝桥杯旧板子的时候,发现LCD例程里有显示图片的函数,就想拿来试试,结果发现芯片的内存大小是放不下图片转成的二维数组的。所以在不去搭载SD卡的情况下,就只能对图片数组进行预处理,具体内容我写在了压缩包里。

2023-04-09

空空如也

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

TA关注的人

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