C/C++
文章平均质量分 53
小汪哥哥.
祝大家收获自己想要的
展开
-
c语言 backtrace
c语言backtrace的详细理解转载 2022-07-17 17:23:25 · 5424 阅读 · 0 评论 -
c语言 assert用法及错误分析
asset用法原创 2022-07-17 12:19:24 · 1123 阅读 · 0 评论 -
c语言运行程序崩溃(crash)的原因
C语言程序崩溃(crash)的原因转载 2022-07-17 12:08:22 · 4215 阅读 · 0 评论 -
makefile学习记录
makefile学习记录原创 2022-07-17 11:36:21 · 133 阅读 · 0 评论 -
实现复数模板类
#include<iostream>using namespace std;template<typename T>class Complex {public: //借助函数的默认参数,可以普通构造函数和“转换构造函数” //精简为以下带默认参数的构造函数 Complex(T a=0, T b=0) :m_real(a), m_imag(b){}; //拷贝构造函数 Complex(const Complex& c); //析构函数 ~Complex原创 2022-03-17 13:47:14 · 374 阅读 · 0 评论 -
Jetson 使用IIC接口读取TFmini-plus等传感器数据
Jetson 使用IIC接口读取TFmini-plus等传感器数据最近使用Jetson nx/nano的IIC接口来读取单点激光雷达TFmini-plus的数据,将开发过程记录如下。首先需要了解IIC通信协议的基本原理,可参考我之前所写的博客:https://blog.csdn.net/w1050321758/article/details/108956570?spm=1001.2014.3001.5501#include <stdio.h>#include <stdint.h&原创 2022-01-13 20:00:59 · 1682 阅读 · 1 评论 -
Jetson nano 使用ROS 实现串口通信,并且解析通信协议(C++)
Jetson nano 使用ROS 实现串口通信1:首先安装ros下的serial库sudo apt-get install ros-melodic-serial其中的melodic根据自己的ros版本来修改2:安装minicom和cutecom来首次检查串口是否通信成功sudo apt-get install minicomsudo apt-get install cutecom3:将自己的串口设备连接到jetson nano上jetson nano的引脚4 6 8 10 分别是VCC原创 2021-11-03 15:02:29 · 4667 阅读 · 0 评论 -
使用ROS通过串口获取遥控器信号(二)
使用ROS通过串口获取遥控器信号(二)十:编写串口通信节点sudo gedit ~/catkin_ws/src/uart_communication/src commu.cpp加入以下代码,根据实际情况修改自己的代码,注意serial的API函数可以从ROS -wiki中搜索得到,根据自己需求调用相应的函数#include <ros/ros.h>#include <std_msgs/String.h>#include<uart_communication/remo原创 2021-04-06 21:05:20 · 1116 阅读 · 5 评论 -
使用ROS通过串口获取遥控器信号(一)
使用ROS通过串口获取遥控器信号硬件:AT9S遥控器和R9DS接收机TX2或者Jetson nano或者DJI manifold2G软件:Ubuntu16.04 ROS-kinetic实现方法:一:首先安装ROS下的Serial功能包sudo apt-get install ros-kinetic-serialP.S. 如果说使用此命令报404错误,可能是软件源的问题,可直接下载deb文件,如serial库http://packages.ros.org/ros/ubuntu/pool/m原创 2021-04-06 20:50:08 · 1428 阅读 · 0 评论 -
ROS使用serial库编译时出现“未定义的引用”解决办法
ROS使用serial库编译时出现“未定义的引用”解决办法在使用ROS的串口通信工具时:sudo apt-get install ros-kinetic-serial写好代码后编译出错,显示与串口相关的一些函数没有引用,报错xxx未定义的引用原因分析:编译器在链接时没有找到与serial相关的库,虽然在函数开头包了#include<serial/serial.h>,但是ros在使用catkin_make时会去CMakeLists找相关的库,原因就是在CMakeLists中没有将需要原创 2021-04-06 19:34:45 · 2589 阅读 · 4 评论 -
C++回调函数总结
一:函数指针回调机制在C语言中是通过函数指针来实现的,通过将回调函数的地址传给被调函数从而实现回调(注意分清回调函数和被调函数的概念,以便在下文论述中理解)。因此要实现回调,必须首先定义函数指针。例如:void Func(char *s) // 函数原型void (*pFunc)(char *); //函数指针可以看出,函数的定义和函数指针的定义非常类似。一般情况下,为了简化函数指针类型的变量定义,提高程序的可读性,我们需要把函数指针类型自定义一下。typedef void(*pcb)(转载 2021-03-30 14:34:40 · 165 阅读 · 0 评论 -
队列及其应用-取牌游戏
队列及其应用-取牌游戏一:基本概念队列是一种操作受到限制的特殊线性表。其插入操作限定在表的一端进行,称为“入队”;其删除操作则限定在表的另一端进行,称为“出队”。插入一端称为队尾(rear);删除一端称为队头(front)。队列也被称作“先进先出”线性表(FIFO,First In First Out)。类似于生活中排队购票,先来先买,后来后买。在不断入队、出队的过程中,队列将会呈现出以下几种状态:队空:队列中没有任何元素。队满:队列空间已全被占用。溢出:当队列已满,却还有元素要入队,就会出原创 2020-10-19 22:55:01 · 2919 阅读 · 0 评论 -
C/C++指针相关知识详解
C++指针相关知识详解一:内存和内存地址内存可以说是电脑里的内存条,内存大小就是内存条的容量。操作系统和程序在运行过程中都需要用到不同的数据,而运行过程中用到的数据都保存在内存中。程序运行时,操作系统首先把程序从硬盘读入到内存中,然后再把内存里面的代码指令读取到CPU内运行,这是因为硬盘的读写速度相对于CPU的运算速度慢很多,把数据先读到内存里面,减少CPU等待读取指令的时间,以提高CPU的利用率。内存按照逐个字节进行划分,操作系统为每个字节的内存按顺序给一个编号,而这个编号就是内存地址,那么操作系原创 2020-10-15 16:50:02 · 251 阅读 · 0 评论 -
栈及其应用-中缀表达式转后缀表达式并用后缀表达式求值
栈及其应用-中缀表达式转后缀表达式并用后缀表达式求值一:栈的基本原理栈是一种特殊的线性表,因为它对线性表中的元素做出了明确的要求:栈中的元素只能从线性表的一端进出,且要遵循“先入后出”的原则,即先进栈的元素后出栈。基于栈结构的特点,在实际应用中,通常会对栈执行以下两种操作:向栈中添加元素,此过程被称为“进栈”(PUSH、入栈或压栈);从栈中提取出指定元素,此过程被称为“出栈”(POP、或弹栈);进栈和出栈一般采用数组和栈顶指针来实现栈。进栈(PUSH)算法:①:若top>=n,则给出原创 2020-10-14 19:17:36 · 1108 阅读 · 0 评论 -
C++结构体、联合体、枚举体及其内存
C++结构体、联合体、枚举体及其内存结构体:是一种特殊形态的类结构体与类的区别:结构体与类具有不同的默认访问控制属性:在类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型;在结构体中,对于未指定任何访问控制属性的成员,其访问控制属性为公有型。关键字:struct定义:Struct 结构体名称{ 公有成员; Protected: 保护型成员Private:私有成员};什么时候用结构体而不用类:1:主要用来保存数据,而没有什么操作的类型2:人们习惯将结构体的数据成员设原创 2020-09-16 12:56:09 · 448 阅读 · 0 评论 -
static关键字的作用详解及其在STM32按键输入实验中的运用
static关键字的作用详解一:先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global variablevoid msg() { printf("Hello\n"); }下面是main.c的内容int main(void){ extern转载 2020-09-11 13:10:56 · 3439 阅读 · 0 评论 -
数据类型及其长度
数据类型及其长度c/c++数据类型:1、整形:int、long2、字符型:char、wchar_t3、布尔型:bool4、浮点型:float、double5、指针从表中可以看出这么几个问题,int类型在64位系统下竟然是4个字节32位的。还有,这些玩意儿到底跟什么有关系?是谁在控制着?从网上扒了各种解释,大概有这么两点:1、64位系统下,编译器为了向前兼容,将int类型自动编译为4个字节的了;2、这些个玩意儿就是编译器来控制的,不同的编译器将int类型编译成不同长度的,所以,使用什么编译转载 2020-09-11 10:37:29 · 5101 阅读 · 0 评论 -
C文件编译步骤
C文件编译步骤四步:预处理:gcc -E project.c -o project.i //宏展开,宏替换编译:gcc -S project.i -o project.s //将目标文件编译成汇编文件汇编:gcc -c project.s -o project.o //汇编成二进制文件链接:gcc project.o -o project //加载库文件,生成可执行文件一:预编译(预处理)预编译(预处理)是预处理中会展开以#起始的行,包括#if、#ifdef、#if ndef、 #else原创 2020-09-11 10:35:51 · 6111 阅读 · 0 评论 -
extern关键字的用法知识点总结
extern关键字的用法/编译C文件的步骤/数据类型及其长度–知识点总结一:extern关键字的用法extern关键字可以用来声明变量、函数作为外部变量或者函数供其它文件使用。extern表明变量或者函数是定义在其他其他文件中的例如:extern int a;显式的说明了a的存储空间是在程序的其他地方分配的,在文件中其他位置或者其他文件中寻找a这个变量。extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。extern声明不是定义,即不分配存储空间。也就是说原创 2020-09-11 10:27:26 · 2621 阅读 · 0 评论