自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (3)
  • 收藏
  • 关注

原创 IIC分析

IIC:两线式串行总线,它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。1. 起始信号 IIC_STARTSDA、SCL线默认是高,表示总线处于空闲状态;SCL处于高电平时,SCL从高到低。表示信号传输开始;SDA拉低后,SCL也被拉低。对应代码产生IIC起始信号1.设置SDA输出2.先拉高SDA,再拉高SCL,空闲状态3.拉低SDA4.准备接收数据2. 终止信号 IIC_STOP终止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信

2021-05-24 22:57:31 2237

原创 刷题1(指针数组)

本题涉及到指针数组 char* a[] 和char** a的区别。1.char* a[] 指针数组在 char* a[] 中,a是数组,数组中的元素是指针,这些指针指向char类型的数据。例子:int * p1[10]“[]”的优先级比“*”要高。p1 先与“[]”结合,构成一个数组的定义,数组名为p1,int *修饰的是数组的内容,即数组的每个元素。那现在我们清楚,这是一个数组,其包含10 个指向int 类型数据的指针,即指针数组。2.char** a在 char** a 中,a 是一.

2021-05-08 13:17:23 308

原创 stm32中断总结

中断CPU 执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序或中断处理程序),来处理该事件,该事件处理完成后又返回被中断的程序继续执行。STM32支持84个中断(16个内部,68个外部);16级可编程的中断优先级设置。抢占优先级:高抢占式优先级的中断事件会打断当前的主程序/中断程序的运行。中断嵌套。响应优先级:在抢占式优先级相同的情况下,高响应优先级的中断优先被响应。不能嵌套,只能等待低响应优先级中断执行完成才能得到响应

2021-04-29 21:22:37 1702

原创 stm32f407输出四路PWM控制舵机电机

最近需要做一个舵机实验,需要四路pwm输出,只需要一个定时器的四个通道就行了,但是正点原子的教程里的pwm输出是使用的TIM14,只有两个通道,上网搜了一下输出多路pwm的博客,发现大多数都是介绍原理,或者都是打着多路输出的幌子最后只输出一路了事,并没有很大的帮助。最后自己用定时器TIM2实现了四路输出来控制我的舵机。话不多说,直接代码,最重要的就是把定时器的时钟和GPIO的时钟初始化,把GPIOA的0123针脚复用为定时器的1234 通道。定时器在这里插入代码片#include "pwm.h"

2021-04-15 21:01:06 3208 1

原创 构造函数(对象初始化)与析构函数(对象清理)

不带参数的构造函数#include<iostream>using namespace std;//不带参数的构造函数class Data{public: void SetNum(int x); int GetNum(); Data();//构造函数private: int mynum;}; //成员函数定义,包括构造函数Data::Data(){ cout << "Object is being created" << endl..

2021-03-31 15:37:23 121

原创 类外定义,类内声明

类内定义,类外声明class Data {private: int num;public: //成员函数在类内声明,类外定义 void setnum(int data);//声明 int getnum(); };//类的外边,加了Data::作用域表示属于类void Data::setnum(int data)//定义{ num = data;}int Data::getnum(){ return num;}void test(){ printf("%d\n"

2021-03-24 22:34:50 740

原创 类的设计:点和圆的关系

#include<iostream>using namespace std;//设计点类和圆类class point{public: void setX(int x = 0)//给x赋值,默认为0 { m_x = x; } void setY(int y = 0)//给x赋值,默认为0 { m_y = y; } int getX()//得到实例的x值 { return m_x; } int getY()//得到实例的x值 { return

2021-03-24 21:44:58 277

原创 类的设计:使用成员函数判断立方体是否相等

使用成员函数判断立方体是否相等意味着要在类的内部操作#include<iostream>using namespace std;class cube{public: //设置长宽高 void setmL(int length) { mL = length; } void setmW(int width) { mW = width; } void setmH(int height) { mH = height; } //读取长宽高 int getmL

2021-03-24 15:45:32 190

原创 类的设计:使用全局函数判断立方体是否相等

创建立方体类,使用全局函数判断立方体是否相等#include<iostream>using namespace std;class cube{public: //设置长宽高 void setmL(int length) { mL = length; } void setmW(int width) { mW = width; } void setmH(int height) { mH = height; } //读取长宽高 int getmL()

2021-03-24 15:16:45 131

原创 类的内部数据访问

public:公共,可访问protected:保护,不可访问private:私有,不可访问1. 不可访问#include<iostream>using namespace std;class Person{//类的内部private: int m_money;//私有数据,类的外部不可访问protected: int age;public: void dese() { cout << "我有房有车年轻有钱爱得瑟" << endl; }

2021-03-23 17:37:06 296

转载 关于粒子滤波的理解(思想非推导)知乎转载

关于粒子滤波的理解(思想非推导) 知乎看到的,觉得讲得很好,转过来

2021-03-17 20:48:11 381

原创 C++中的引用(一)

引用是C++对C语言的一个补充,引用是隐式的指针,是C++常用的重要内容之一。1 引用初始化引用就是给一个变量起一个别名,用“&”标识符来标识,其格式如下所示。数据类型 & 引用名 = 变量名;如int a = 10;int &b = a;//b是a的别名b就是变量a的引用,b和a标识的是同一块内存,相当于一个人有两个名字。对a与b进行操作,都会更改内存中的数据。注意● 引用在定义时必须初始化,如int &b;语句是错误的。● 引用在初始化时只能绑定左值

2021-03-08 23:12:53 253

原创 C语言中*p 和p的区别

C语言中*p 和p的区别C语言中,*p 和p都常用在指针当中表示一个指针变量,*p 和p的区别:表示的含义不同*p表示此指针指向的内存地址中存放的内容。p表示一个指针变量的名字,指此指针变量所指向的内存地址。输出的格式不同*p一般是一个和指针类型一致的变量或者常量。p输出的是一个16进制数, 输出一个指针的地址。功能不同*p是让程序去那个地址取出数据。p存放的是地址。例子:#include <stdio.h>void main(){int x=

2021-03-03 10:26:40 23208 2

原创 冒泡排序

对数组元素进行排序的方法有很多种,比如冒泡排序、归并排序、选择排序、插入排序、快速排序等,其中最经典最需要掌握的是「冒泡排序」。以从小到大排序为例,冒泡排序的整体思想是这样的:从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾。经过第一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置。第一轮结束后,继续第二轮。仍然从数组头部开始比较,让较大的元素逐渐往后移动,直到数组的倒数第二个元素为止。经过第二轮的比较,就可以找到次大的元素,并将它放到

2020-10-22 21:10:27 109

原创 分析gcc、make和cmake

gcc在linux系统中,当你的程序只有一个源文件时,直接就可以用gcc命令编译它。gcc简单的来说,它就是Linux平台的一个编译器。例如对程序的源代码hello.c进行编译,生成可执行文件hello.out。可是,我们的程序有时候可能不是一个单一的源文件,当我们的项目是一个很大的工程时,用gcc命令逐个编译,可能一不小心就会出错。这个时候就出现了make和makefile。makemake工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于Windows中批处理的方式—

2020-10-10 19:52:28 264

原创 px4学习笔记——实时操作系统以及NUTTX

一 、操作系统应该具有的功能有:任务调度:任务调度其实是个程序,它决定哪个程序在什么时候使用CPU。(windows系统可以同时运行多个程序,这是因为多个程序在轮流使用CPU,但是由于切换的速度很快,我们感觉多个程序是在同时运行的。)内存管理:程序运行的时候是从磁盘加载到内存中运行的,程序的运行需要内存,多个程序同时运行时内存怎么利用,各个程序利用的多少,利用的位置,利用完成后的释放等等,需要一个叫内存管理的程序来控制。文件系统:文件系统用来整理文件,就是windows的文件目录结构,当然不同系

2020-10-10 15:22:38 1397

原创 LINUX 下的锐捷客户端联网问题(Ubuntu)

LINUX 下的锐捷客户端联网问题(Ubuntu)前段时间装的Ubuntu,一直连不上有线网,弄了很长时间,最后解决了,是学校锐捷客户端的问题,现将自己搜集到的Linux下的锐捷脚本分享给大家 ,帮助大家解决网络问题。一:[发给大家的是第三个文件,解压后就成了第一个文件]二:[打开第一个文件]三:[鼠标右键,选择在终端中打开]四:[输入命令]sudo ./rjsupplicant.sh -u 201904704092 -p 19961126 -d 1运行.sh文件-u是用户名 use

2020-10-07 20:22:18 512

原创 MathType丢失Mplugin.dll文件解决方法

MathType有着强大的功能,能够进行多种数学符号编辑,所以用来编辑公式确实很方便。但是在对MathType进行安装时也会遇到很多问题,比如Mplugin.dll文件缺失,这样就导致了MathType无法正常安装或者使用.具体解决方法如下:1.首先你需要下载一个Mplugin.dll文件链接:https://pan.baidu.com/s/1k5e6h0XidosQeTrg7VTwIA提...

2020-02-13 19:49:26 4776

四路 PWM输出实验.zip

四路 pwm输出 ,可控制电机、舵机

2021-04-15

预积分总结与公式推导20180827.pdf

IMU预积分总结与公式推导,作者为北航自动化学院在读博士邱笑晨,阅读后觉得很有收获(好东西),学习视觉惯导知识必备

2020-12-14

截图生成公式 mathpixsnippingtool

Mathpix Snip ,只要截个图,公式会自动转化为 LaTex 表达式,我们只需要简单地修改修改就行了。Mathpix Snip 的设计初衷是帮助人们在通过手机或电脑输入数学公式时节省时间。

2020-02-19

空空如也

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

TA关注的人

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