自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 香橙派One(全志H3芯片)编译烧写U-boot、Linux内核zImage、dtb

香橙派提供了u-boot源码和交叉编译链工具:(1)u-boot(2020.04)下载地址:https://github.com/orangepi-xunlong/u-boot-orangepi(2)交叉编译工具链(arm-linux-gnueabihf-)下载地址:https://github.com/orangepi-xunlong/toolchain。

2023-06-01 19:26:51 3543 1

原创 UART串口通信协议

UART通信协议简要讲解,协议格式、通信过程以及与串口相关的常混淆的概念

2023-03-02 21:40:24 4146 1

原创 一维动态规划排列数和组合数区别(基于零钱兑换和爬楼梯题目)

针对动态规划求方案数的题目,有两种题目容易混淆:题目一:零钱兑换II(https://leetcode-cn.com/problems/coin-change-2/)题目二:爬楼梯问题(https://leetcode-cn.com/problems/climbing-stairs/)题目二中,通过分析,可以得知子问题是最后一步是通过跨两个台阶,还是一个台阶上来的。所以动态转移方程为:dp[i] = dp[i-1] + dp[i-2]一、注意:以下是错误思路:通过题目二,我们可以推断出题

2021-06-10 17:14:35 353

原创 C/C++结构体内存对齐规则

参考网址:[1] https://blog.csdn.net/u011404495/article/details/54837797

2021-05-08 16:15:16 169

原创 力扣刷题记录——经典TOPK问题的两种解法(以剑指offerⅡ 40为例)

参考网址:[1] https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/solution/tu-jie-top-k-wen-ti-de-liang-chong-jie-fa-you-lie-/[2]题目网址:https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/

2021-05-07 17:12:44 298

原创 C/C++是否支持动态数组(VLA)

一、先说结论:1.1.支不支持看哪个语言版本,C99和C++11及其之后的版本都是支持的。C99之前不支持。2.2.但是,C99和C++11即便是支持,VLA也必须是局部变量,不能是全局变量二、解释2.1 针对1.1的解释:直接上代码:不管是C++11还是C99,下面这么写都可以运行。#include<stdio.h>#include<stdlib.h>void VLA(int len){ int f[len]; printf("VLA is

2021-03-23 17:15:55 2460 3

原创 归并排序在计算逆序对中的应用

题目描述:解题思路一、暴力求解思路:两层for循环对数组挨个进行判断,这里不再展示代码,时间复杂度为N²二、归并排序思想归并排序采用了分而治之的思想,把数组分成左右两部,让左右两边都有序,接着再merge即可,具体原理不再解释,直接上代码#include<stdlib.h>#include<stdio.h>int merge(int* arr, int* res,int left,int mid,int right){ int number=0;

2021-03-13 11:35:30 177

原创 int a[n]与int* a=(int*)malloc(sizeof(int)*n)的区别与联系

一、回忆一下数组与指针之间的关系1.1定义与初始化1.数组进行定义时,可以不进行初始化,例如直接定义int a[5];,可以将a直接作为函数的实参传入函数运算中。2.指针进行定义时,若要使用指针,比如说当作实参传入函数,必须进行初始化(即指向某一个位置),否则编译器会报错。3.数组的名字是整个数组的首地址,指向数组第一个元素所在的地址2.2相互使用二、int a[10] 和 int *a = malloc(10 * sizeof(int))的区别与联系联系int a[10] 和 int *

2021-02-02 18:29:26 4960 3

原创 STM32的GPS数据提取程序设计说明——基于NMEA0183协议

一、硬软件平台本次程序实现效果为对GPS信号穿送来的数据进行筛选,并将筛选后的信息通过上位机显示出来,所以此次设计所需硬件包括STM32F407、RS232转TTL、CH340USB转串口模块,注意该模块在使用前,对应的系统需要安装驱动,否则串口调试助手无法识别,另外还包括JLink下载器。本次代码设计软件为KEIL5并结合F4固件包,上位机系统为WIN7,主机系统为WIN10。二、算法总体思路设计由于GPS通过RS232将数据传送给板子,因此使用两个串口资源(串口1和串口2),其中一个用来

2020-12-02 13:57:13 4589 5

原创 小白学数据结构与算法(7)——排序

常见的七种排序算法首先定义一下排序的结构和交换函数,这里排序的对象结构为数组#define MAXSIZE 10 //定义要排序的数组长度的最大值typedef struct { int r[MAXSIZE+1];// int length;//当前数组的长度}Sqlist;由于排序中经常用到交换函数,所以定义一下交换函数void swap(Sqlist* L, int i, int j){ int temp; temp=L->r[i]; L->r[i]=L->

2020-11-13 13:59:01 128

原创 小白学数据结构与算法(6)——查找

1.概念查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(记录),若表中存在,则称为查找成功;若不存在,则查找不成功,返回空数据或空指针查找表:同一类型的数据元素(或记录)构成的集合关键字:数据元素中某个数据项的值,又叫键值主关键字:可以唯一地标识一个数据(或记录)的关键字1.1 静态查找表——查找表只有查找操作1.2 动态查找表——在查找过程中,同时对查找表进行插入或删除操作2.顺序表查找顺序查找又叫线性查找,表中数据没有排列数据,从第一个数据(或最后一个数据)开始,

2020-11-12 13:44:41 315

原创 入门小白学数据结构与算法(5)——图

图——多对多的数据关系1.概念1.1基本概念1.图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为G(V, E),G表示为一个图,V是图G中所有顶点的集合,E是图G中所有边的集合2.图中的数据元素叫做顶点,树的叫做节点,线性表叫做元素3.任意两个顶点之间都有可能有关系,顶点之间的逻辑关系用边来表示,边集可以是空的,但是顶点的集合不可以为空1.2其他概念1.无向边:顶点Vi到Vj之间的边没有方向。用无序偶对(Vi,Vj)或者(Vj,Vi)来表示2.有向边(弧):顶点Vi到Vj之间的边有

2020-11-10 11:51:23 245 2

原创 Visual Studio下C语言小细节(3)——使用scanf_s循环输入字符

scanf_s函数用法介绍1.scanf_s是scanf的进化版,比scanf更加安全,它在使用时,加了一个输入变量长度的限制符,当输入一个字符时,我们可以使用char c;scanf_s("%c",&c,1);上述用法中,%c是格式限定符,后面的1是限制要赋值给字符变量c的长度,起到限定取值长度的作用,也就是说,即使我输入的是ABCD,那么最终赋值给c的只是A。但是,也正是因为%c的关系,它除了会读取字符之外,还会读取空白,啥是空白呢,也就是换行符,制表符和空白2.下面,对字符输入的

2020-11-08 17:51:15 3346

原创 入门小白学数据结构与算法(4)——树

树——“一对多”的数据关系1.概念1.结点的度:结点拥有的子树数。度为0的结点称为叶结点或终端结点,不为0的称为分支节点,除根节点外,分支节点也称为内部结点。2.树的度:树内各节点的度的最大值。注意:1.树的关系是一对多,之前研究的线性表是一对一,不要混淆2.当树的结点数n>0时,有且只有一个根节点3.子数个数m>0时,子树的数目没有限制,但每个子树之间必须是不相交,若有相交,则不符合树的定义2.相关代码操作树的结构代码——双亲表示法#define MAX_TREE_SIZE

2020-11-06 15:27:26 261

原创 嵌入式芯片和操作系统的分类

2020-11-03 19:50:19 998 1

原创 入门小白学数据结构与算法(3)——栈和队列

一、 栈——一种数据遵从“后进先出”的线性表1.1 基本概念:1.仅限定在表尾(栈顶)进行插入和删除操作2.把允许插入和删除的一端(表尾)称为栈顶,另一端叫做栈底,不含任何元素的叫做空栈3.先进的数据放在底,栈的插入又叫入栈,栈的删除叫做出栈。理解:其实栈就是一种特殊的线性表(顺序表,链表),只是数据的操作只允许在表尾(栈顶)1.2 存储结构分为顺序存储和链式存储,常用的为顺序存储1.3栈的相关代码操作——栈顶栈底指针形式栈的定义typedef int Elemtype;typedef

2020-11-01 15:31:08 273

原创 C语言小细节(2)——对迭代与递归的理解

递归定义:函数自己调用自己来实现循环理解:递归实际上不断地深层调用函数,直到函数有返回才会逐层的返回,递归是用栈机制实现的,每深入一层,都要占去一块栈数据区域,因此,递归涉及到运行时的堆栈开销(参数必须压入堆栈保存,直到该层函数调用返回为止),所以有可能导致堆栈溢出的错误。例如:if else 调用自己,并在合适时机退出迭代定义:利用变量的原值推出新值称为迭代,或着说迭代是函数内某段代码实现循环理解: 迭代大部分时候需要人为的对问题进行剖析,分析问题的规律所在,将问题转变为一次次的迭代来逼近答案。

2020-11-01 10:26:42 362

原创 入门小白学数据结构与算法(2)——线性表

数据结构与算法(2)——线性表概念:由零个或多个数据元素组成的有限序列注意:1.序列性,元素间有先来后到2.第一个元素无前驱,最后一个元素无后继,其他元素有且只有一个前驱和后继3.线性表是有限的4.线性表元素的个数n定义为线性表的长度,当n=0时,称为空表操作1.InitList(*L):初始化线性表,建立一个新的空的线性链表2.ListEmpty(L):判断线性表是否为空表,若是则返回true,否则返回false3.ClearList(*L):清空线性表4.GetElem(L, i,

2020-10-28 11:10:32 272

原创 C语言小细节(1)——用指针实现函数形参改变实参

用指针实现函数形参改变实参在普通情况下,定义一个带有形参的子函数之后,当调用函数调用该子函数时,实参的值只是复制给形参,再参与子函数里面的数值运算,但原实参的值并不会改变,举个栗子#include <stdio.h>void interchange(int u, int v){ int temp; temp=u; u=v; v=temp;}void main(){ int x=5, y=10; printf("x=%d,y=%d\n",x,y);//此时系统输出x=5

2020-10-28 09:02:05 2117

原创 入门小白学数据结构与算法(1)——基本概念

数据结构与算法——基本概念数据结构:分为逻辑机构与物理结构逻辑结构:数据对象中数据之间的相互关系,分为四个:集合结构:只是同属于一个集合,数据之间没有关系线性结构:数据之间是一对一的关系树形结构:数据之间存在一对多的关系图形结构:多对多的关系物理结构:顺序存储和链式存储顺序存储:数据存放在地址连续的存储单元里,数据间的逻辑关系和物理关系是一致的,例如数组链式存储:地址连续也可不连续,每个元素都会另外存放一个指针,这个指针指向下一个数据的地址时间复杂度与空间复杂度:指程序运

2020-10-23 15:27:28 161

原创 记录:Ubuntu16.04虚拟机运行ORB-SLAM2

第一步:下载和安装在win10使用Vmware搭建Ubuntu16.04虚拟机,然后下载ORB-SLAM2源码,源码链接https://github.com/raulmur/ORB_SLAM2。另外,若想成功运行需要其他的附件包,包括:1.C++11或者C++ 0x编译器2.Pangolin: https://github.com/stevenlovegrove/Pangolin3.Opencv: 这里的Opencv需要源码编译安装在ubuntu虚拟机上,版本最低是2.4.3,笔者的是3.4.1,测

2020-09-21 21:17:17 1393

原创 对矩阵乘法本质的理解——从向量线性组合角度

2020-08-04 10:36:41 1017

原创 YOLOV4 windows10系统训练自己的图片数据集(robomaster官方数据集)

首先,当然是要配置好环境啦,这里相信屏幕前的你已经配置好了,如果没有配置好也不用着急。可以看一下本博主另一篇保姆教程,请移步:https://blog.csdn.net/weixin_39954922/article/details/105785460,,,,啊哈哈哈哈一、配置好之后,最重要的就是数据集,因为博主报名参加了RM比赛,所以就用大疆给的官方数据集试验了一下,首先准备两个数据集,一个...

2020-04-28 17:36:42 7345 11

原创 windows10+vs2017+opencv3.4.1配置YOLOV4

首先需要准备的软件包:我这里CUDA是10.0版本,CUDNN是对应10.0的版本,一定要对应,可以在控制面板看一下自己的CUDA是什么版本。1.CUDA:https://developer.nvidia.com/cuda-toolkit-archive2.CUDNN:https://developer.nvidia.com/rdp/cudnn-archive3.opencv>2...

2020-04-27 11:51:33 10590 38

原创 pytorch学习之路二:opencv-python+pytorch训练自己的图片集实现手势识别

摘要:本次实验中的代码基于python,用pytorch识别手势所代表的数字。首先利用opencv打开摄像头采集分辨率为64*48的手势灰度图像,接着使用pytorch建立卷积神经网络来对图片进行训练,得到训练模型,最后调用模型,用opencv打开摄像头实时采集人的手势照片,最后在pycharm终端显示检测结果。github代码地址:https://github.com/1240117300/...

2020-04-22 21:08:43 8656 10

原创 pytorch学习之路一:识别MINIST手写数字数据集

1.首先,参考pytorch官网安装pytorch,我选择的是windows系统+python3.7+pip安装,所以选择好后,直接在cmd中运行图中的命令行,pytorch官网:https://pytorch.org/2.打开pycharm。新建工程,有的童鞋可能会找不到下载的pytorch包,请参考:https://blog.csdn.net/weixin_39954922/artic...

2020-04-19 18:15:36 3729

原创 cmd下载的python包,pycharm中却无法使用

原因:pycharm创建工作目录的时候创建的是虚拟解释器,需要修改为公共解释器之后即可读取到本地的包 (图片截取网络)然后就可以file->setting->project->interpreter看到已经下载的包了...

2020-04-18 22:33:44 3857 1

原创 树莓派视觉开发方法(opencv及contrib安装、使能串口等)

----------------------------------------#sudo no passwdsudo nano /etc/sudoersknight ALL=(ALL) NOPASSWD: ALL----------------------------------------#open SSH and Serialsudo raspi-configinte...

2020-04-17 17:59:38 448

原创 robomaster ubuntu视觉可能用到的工具网站总结(1)

ubuntu安装gcc/g++编译器:https://blog.csdn.net/Judy18/article/details/83152956Ubuntu安装cmake:sudo apt-get install cmakeopencv下载地址:https://opencv.org/releases/如果下载太慢可尝试:https://blog.csdn.net/qq_15698613...

2020-03-23 13:03:47 261

原创 windows上VS2017编写的opencv3.4.1项目移植到ubuntu16.04运行方法(附opencv_contrib安装方法)

1.参考CSDN网络安装Cmake,下载opencv3.4.1.zip,并用cmake编译2.编译C++项目时,须编写CMakeLists.txt文本,该文本包含C++主函数中所用到的头文件的路径及opencv链接库地址。3.cmake ..或cmake .对项目进行编译,再make生成ubuntu可执行文件,在可执行文件的路径下利用 ./+可执行文件名称 即可运行C++项目。若...

2020-02-24 15:31:39 545

原创 卡尔曼滤波公式手写推导

2020-02-23 19:53:58 267

原创 Vmware搭载ubuntu18.04虚拟机配置ROS教程

首先配置虚拟机在这里就不赘述啦~~直接开始配置ROS,并运行小乌龟程序~~开始配置1.更改软件源,打开Ubuntu Software,在EDIT里面讲将设置改为以下形式 2.设置sources.list将电脑设置为接受来自packages.ros.org的软件。--------sudo sh -c 'echo "deb http://packages.ros.org...

2018-07-23 02:20:25 3938 1

原创 windows搭建大数据Hadoop2.9.0平台

一、需要工具如下1.VMware2.jdk-8u161-linux-x64.tar.gz3.securecrt(相当于xshell)4.filezilla(给虚拟机传输文件)5.Centos7.iso6.hadoop-2.9.0.tar.gz二、搭建步骤(可参考https://www.bilibili.com/video/av15390641/?p=6和https://www.cnblogs.co...

2018-03-30 19:49:00 2780

原创 centos7无法使用yum命令的解决办法

https://www.cnblogs.com/sunylat/p/7214753.htmlcentos7无法使用yum命令的解决办法

2018-03-27 21:56:41 29457 1

原创 树莓派串口通信配置教程

1、树莓派3B GPIO 引脚图(USB口对着自己)。2、 开始配置树莓派串口一、因为树莓派3加入了蓝牙功能,于是把/dev/ttyAMA0串口分配给蓝牙了。之前使用J8.8, J8.10这个串口是对应/dev/ttyAMA0的,但是现在重新分配给/dev/ttyS0了,所以之前的程序对修改过来:1、打开命令控制符,输入sudo raspi-config2、选择Advanced Options3、...

2018-02-21 23:12:07 7518

原创 树莓派(ubuntu mate16.04或者raspberrypi系统)配置opencv教程

1.工具8G以上SD卡,读卡器,树莓派3B,电源线(手机充电器即可),台式电脑显示屏,联网笔记本一台,HDMI转VGA头一个。2.步骤       1、下载2017-11-29-raspbian-stretch.zip或ubuntu mate16.04系统镜像压缩包,下载地址:https://www.raspberrypi.org/downloads/   (官网更新到哪个版本就可以下载哪个版本)...

2018-02-21 23:04:39 2780

原创 halcon之检测圆

直接上原码:read_image()*中间插入选取ROI和旋转图像threshold (ImageReduced, Region, 0, 128)fill_up (Region, RegionFillUp)orientation_region (RegionFillUp, Phi)dev_open_window (0, 0, Width, Height, 'black'

2018-01-20 22:30:42 10775

空空如也

空空如也

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

TA关注的人

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