前言 通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针是很有必要的。 一、先看代码 #include <stdio.h> int main () { int var_runoob = 10; int *p; // 定义指针变量
今天要在RTOS配置外部中断,为了省事,直接copy的裸机的外部中断例程,结果不能用,把可能出现的问题全部都查了一遍。首先FreeRTOS可管理优先级是5~15,这个注意到了,但是还是不行。是因为少了一个重要的参数。 先看裸机的中断结构体参数,这个和操作系统没有任何差别。然后我们再来看中断的配置 大家仔细看一下是不是少了一个参数。使能参数没有写,这是因为裸机默认使能,但是FreeRTO
STM32定时器 前言 最近想弄一个多路输出PWM,但是发现TIM2不能用,根据手册也对它进行重映射了,但是还是不能用,用示波器发现驱动能力比较弱,然后禁用jtag搞定了。 一、问题分析 重映射的参数在stm32底层文件可以看到 这里有写 GPIO_PinRemapConfig(GPIO_FullRemap_TIM2,ENABLE); //完全映射 1.不重映射时,默认
前言 封装是面向对象编程中的把数据和操作数据的函数绑定在一起的一个概念,这样能避免受到外界的干扰和误用,从而确保了安全。数据封装引申出了另一个重要的 OOP 概念,即数据隐藏。数据封装是一种把数据和操作数据的函数捆绑在一起的机制,数据抽象是一种仅向用户暴露接口而把具体的实现细节隐藏起来的机制,C++ 通过创建类来支持封装和数据隐藏(public、protected、private)。 在 C+
一、配置 (slave_id=0x18010001为只接收的id号): 1、对扩展数据帧进行过滤:(只接收扩展数据帧) CAN_FilterInitStructure.CAN_FilterIdHigh=(((u32)slave_id<<3)&0xFFFF0000)>>16; CAN_FilterInitStructure.CAN_FilterIdLow=((
前言 前面学习了CAN的一些理论知识,他在我们的STM32里面是怎么用的呢前面讲了一些can的知识,在STM32里是什么样的呢 一、CAN外设 1.主控制寄存器CAN_MCR DBF调试冻结:处于程序调试模式才使用。可以设置CAN处于工作模式还是禁止收发状态,禁止收发时仍可以访问接受FIFO中的数据。TTCM时间触发模式:设置CAN的时间触发通信模式。在此模式下,CAN使用它内部定时器产生
前言 C++多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数;形成多态必须具备三个条件: 1.必须存在继承关系;2.继承关系必须有同名虚函数(其中虚函数是在基类中使用关键字 virtual 声明的函数,在派生类中重新定义基类中定义的虚函数时,会告诉编译器不要静态链接到该函数);3.存在基类类型的指针或者引用,通过该指针或引用调用虚函数。 一、虚函数与纯虚函数 虚函数是在
一、什么是构造函数? 构造函数在对象实例化时被系统自动调用,仅且调用一次。前面我们学过类,实际上定义类时,如果没有定义构造函数和析构函数,编译器就会生成一个构造函数和析构函数,只是这个构造和析构函数什么事情也不做,所以我们不会注意到一点。 构造函数的特点如下:(1) 构造函数必须与类名同名;(2) 可以重载,(3) 没有返回类型,即使是 void 也不行。 二、什么是析构函数? 与构造函数
一、类和对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。打个比方说明一下什么是类,比如有一条小狗,小狗有名字叫旺财,旺财的年龄是 2 岁,同时旺财会汪汪的叫,也能跑。我们统称狗这个为类,类
前言 面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。 当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。在 Qt 里大量的使用了这种特性,当 Qt 里的类不满足自己的要求时,我们
前言 学习 C++的面向对象编程,对学习 Qt 有很大的帮助 一、 C++的输入输出方式 效率上,肯定是 C 语言的 scanf 和 printf 的效率高,但是没有 C++中的 cin 和 cout 使用方便。 1.cout语法形式 cout<<x<<endl; cout<<x<<y; // endl 可流省略,只是一个换行的效果
前言 C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但它们的参数列表和定义(实现)不相同。 一、函数重载 在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。我们不能仅通过返回类型的不同来重载函数。在 Qt源码里
前言 绍在 Ubuntu 在终端窗口下使用 vi/vim 编辑一个 C++源文件。通过编写最简单的示例“Hello,World QCX”。 一、C++简介 C++ (c plus plus)是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。C++ 是由 Bjarne St
一、接口(抽象类) 接口描述了类的行为和功能,而不需要完成类的特定实现。C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 “= 0” 来指定的。设计抽象类(通常称为 ABC)的目的,是为了给其他类提供一个可以继承的适当的基类。抽象类不能被用于实例化对
红外测温 文章目录 红外测温 前言 一、原理 二、STM32代码 1.MLX90614.c 2.MLX90614.h 总结 前言 一、原理 红外测温的原理可以直接去看卖家的手册,手册多余的话太多了,知道他是IIC通信的就行了, 下面直接给出代码 二、STM32代码 1.MLX90614.c #include "MLX90
蓝桥杯 文章目录 蓝桥杯 前言 一、递归算法 二、实例 总结 前言 递归算法是一种从自顶向下的算法,实际上是通过不停的直接调用或者间接的调用自身的函数,通过每次改变变量完成多个过程的重复计算,直到到达边界之后,结束调用。 一、递归算法 一个函数调用其自身就是递归。 二、实例 可以得到递归关系与递归出口 int fact(int n)
蓝桥杯 文章目录 蓝桥杯 前言 一、全排列的思路 二、permutations函数 三、next_permutation 前言 前面学习了sort排序函数,今天又了解了一下permutations全排列函数。 一、全排列的思路 比如1234这四个数字进行全排列是不是1放在首位234进行全排列,234怎么进行全排列呢是不是2放在首位34进行位置交换,然后2
思岚激光雷达 文章目录 思岚激光雷达 前言 一、接线说明 二、效果实现 1.串口通信实现 2.激光雷达数据处理 3.PWM 控制激光雷达启停 三、完整代码 数据格式为:角度(°):距离(mm)。 STM32C8t6驱动激光雷达 前言 前面我们了解了激光雷达的原理,下面用C8T6驱动激光雷达 一、接线说明 激光雷达一
蓝桥杯 文章目录 蓝桥杯 前言 一、sort排序函数 1.从小到大 2.从大到小 二、c++标准库 1.less<数据类型>() 2.greater<数据类型>() 三、字符排序 总结 前言 C++中有很多好用的函数,可以在蓝桥杯中省出很多的时间并且大大提高你的获奖率。 一、sort排序函数 So
思岚A1激光雷达 前言 先来了解激光雷达RPLIDAR A1M8 360 度激光扫描测距雷达是由 SLAMTEC 公司开发的低成本二维激光雷达(LIDAR)解决方案。它可以实现在二维平面的 12 米半径范围内进行 360度全方位的激光测距扫描,并产生所在空间的平面点云地图信息。这些云地图信息可用于地图测绘、机器人定位导航、物体/环境建模等实际应用中。在将采样周期设为 1450 点采样/周的条件
机智云 文章目录 机智云 前言 一、工程的修改 二、数据的上传 1.标识符 2.数据处理 3.数据上传 三、app控制 前言 今天搞了一下机智云,就想把温湿度发到app上去,然后能够控制灯的开关。之前从来没有用过这个玩意,用阿里云和点灯科技多一点,听说这个机智云更方便。,相应的教程csdn上真的很多很多,我简单记录一下自己菜的坑,还有数据的
蓝桥杯 文章目录 蓝桥杯 前言 一、找规律求解 二、枚举 总结 前言 4月份就开始蓝桥杯省赛了,开始准备蓝桥杯了,冲冲冲 一、找规律求解 该题目涉及了3个变量,层数(a),煤球个数(b),煤球总数© 可以看到一个规律,每一层的煤球个数都是这一层加上上一层的煤球个数组成,比如6=第三层+3个,10=第四层+6个所以 num[i]=num[i-1]
ROS机器人操作系统 文章目录 ROS机器人操作系统 前言 一、服务模型 二、自定义服务数据 1.创建一个服务器 2.添加功能包依赖 3.添加编译选项 4.生成头文件 三、代码实现 1.创建客户端 2.创建服务器 3.设置编译规则 4.编译并运行 总结 前言 前面学习了Spawn和Trigger两种在ROS中已经定义好的
ROS机器人操作系统 文章目录 文章目录 ROS机器人操作系统 前言 一、服务模型 二、实现方法 1.创建一个服务器 2.代码编译规则 3.运行服务器 前言 一、服务模型 二、实现方法 1.创建一个服务器 如何实现一个服务器 • 初始化ROS节点;• 创建Server实例;• 循环等待服务请求,进入回调函数;• 在回调函数中
ROS机器人操作系统 文章目录 ROS机器人操作系统 前言 一、服务模型 二、实现方法 1.创建功能包 2.创建客户端 3.配置编译规则 4.编译并运行客户端 总结 前言 前面介绍了发布者与订阅者的实现,Client是一种新的通信方式 一、服务模型 二、实现方法 1.创建功能包 $ cd ~/catkin_ws/src $ c
ROS机器人操作系统 文章目录 ROS机器人操作系统 前言 一、QT工具箱 二、Rviz 三、Gazebo 前言 ROS操作系统中提供了很多可视化工具,这些工具方便我们调试机器人。 一、QT工具箱 输入ros_然后按tab键补全就行了 二、Rviz Rviz是一款三维可视化工具,可以很好的兼容基于ROS软件框架的机器人平台。➢ 在rviz中,
ROS机器人操作系统 文章目录 ROS机器人操作系统 前言 一、launch是什么? 二、launch文件语法 1.launch 2.node 3.param / rosparam 4.arg 5.重映射remap 6.嵌套include 三、launch示例 总结 前言 前面我们学习了怎么用代码实现两个小海龟的跟随运动,很明显的感觉出真的
ROS机器人操作系统 文章目录 ROS机器人操作系统 一、创建功能包 二、创建TF广播代码 三、创建TF监听器 四、配置编译规则 五、编译并运行 总结 一、创建功能包 $ cd ~/catkin_ws/src $ catkin_create_pkg learning_tf roscpp rospy tf turtlesim 二、创建TF广播代
ROS机器人操作系统 文章目录 ROS机器人操作系统 前言 一、TF坐标变换 二、小海龟案例 1.安装功能包 2.运行功能包 3.运行代码 三、TF工具 1.view_frames 2.tf_echo 3.Rviz可视化工具 总结 前言 前面学习了ROS中的一些基本知识,但是我们在使用ROS时,有很多工具需要
ROS机器人操作系统 文章目录 ROS机器人操作系统 一、参数模型 二、使用方法 1.创建功能包 2.rosparam命令行的使用· 3.编程方法 4.配置CMakeLists.txt中的编译规则 5.运行发布者 总结 一、参数模型 二、使用方法 1.创建功能包 $ cd ~/catkin_ws/src $ catk
ROS机器人操作系统 文章目录 文章目录 ROS机器人操作系统 前言 一、如何自定义话题消息 二、实现方法 1.创建.msg文件 2.添加功能包依赖 3.配置cmake编译规则 1.添加功能包 2.添加编译文件规则 3.在catkin_package中创建运行的依赖 三、创建发布者与订阅者 1.发布者
古月居机器视觉开发——ROS+opencv的图像处理方法(三) 机器视觉文章目录 前言一、opencv是什么二、图像处理方法总结前言这篇文章主要介绍opencv和ROS中的图像转换。 一、opencv是什么 opencv很多人都了解过了,用它来做图像处理真的很方便,大多数ROS里的图像处理,核心都是opencv里的东西。 二、图像处理方法 肯定要先安装opencv,直接用这句话,八成你
ROS机器人操作系统——什么是ROS(一) ROS机器人操作系统文章目录 前言一、ROS是什么?二、ROS的发展史三、ROS的特点总结前言大一下的时候接触过ROS,也只是单纯的知道这个东西,了解了一点皮毛,并没有系统的去学习。一年过去了,无人驾驶以及机器视觉还是更加吸引我,于是我打算重拾ROS,希望能在别人开源的基础上做到二次开发,实现我想要的功能。 一、ROS是什么? 随着机器人领域的快
ROS机器人操作系统——ROS的核心概念(二) ROS机器人操作系统文章目录 前言一、ROS的通信机制二、ROS中的开发工具1.命令行&编辑器2.可视化工具三、ROS的应用功能四、ROS的生态系统总结前言ROS的核心就是提高机器人研发中的软件复用率,共分为四大部分。 一、ROS的通信机制 松耦合分布式通信,所有的框架可以抽象成一个节点图,用箭头代表他们之间的通信。节点是ROS中重要
ROS机器人操作系统——ROS命令行工具的使用(三) ROS机器人操作系统文章目录 前言一、启动小海龟二、工具介绍1.rqt_graph可视化工具2.rosnode节点三、rostopic话题四、rosmsg查看数据结构五、rosservice服务五、话题记录复现总结前言 一、启动小海龟 启动ROS Master管理器 roscore 启动小海龟仿真器 rosrun turtle
ROS机器人操作系统——创建工作空间与功能包(四) ROS机器人操作系统文章目录ROS机器人操作系统前言一、工作空间1.创建工作空间2.编译工作空间3.设置环境变量4.检查环境变量二、功能包1.创建功能包2.编译功能包总结前言工作空间与功能包是ROS工程中两个非常重要的概念 一、工作空间 src放置功能包的文件 1.创建工作空间 mkdir -p ~/catkin_ws/src #-p
ROS机器人操作系统——发布者Publisher的编程实现(五) ROS机器人操作系统文章目录 前言一、话题模型二、实现功能1.创建功能包2.实现发布者(c++)3.配置发布者代码编译规则4.编译运行代码5.设置环境变量6.实现发布者(python)总结前言发布于订阅是ROS中比较重要的一部分 一、话题模型 这是小海龟的话题模型 二、实现功能 1.创建功能包 $ cd ~/catki
ROS机器视觉 文章目录 ROS机器视觉 一、摄像头分类 二、ROS驱动摄像头 1.安装功能包 2.参数设置 3.功能包详解 总结 想具体了解的可以去看古月居的课程,我只是简单的记录一下笔记。 一、摄像头分类 摄像头可以分为二维和三维,通常深度相机都是三维的,摄像头类型很多,可以根据自己需要的进行选择。 二、ROS驱动摄像
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信