自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 资源 (1)
  • 收藏
  • 关注

转载 Ubuntu使用doxygen将源码生成调用关系图

文章目录环境概述Doxygen安装配置打开图形界面第一步:配置工程信息第二步:点击“Next”按钮,进入到以下界面,进行Mode配置:第三步:点击“Next”按钮,进入到以下界面,进行Output配置:第四步:点击“Next”按钮,进入到以下界面,进行Diagrams配置:第五步:点击“Expert”标签页,选择“Project”,进入如下界面,进行配置:第六步:向下拉动Topic的滚动条,选择“Dot”,进行配置:第七步:点击“Run”标签页,进入以下界面,点击“Run doxygen”按钮。使用命令生成

2020-09-23 17:26:02 1443 1

原创 C++读写yaml配置文件

文章目录YAML基础语法基本规则三种数据结构map,散列表list,数组scalar,纯量数据结构嵌套map嵌套mapmap嵌套listlist嵌套listlist嵌套map利用yaml-cpp读写yaml配置文件首先下载源码读取 yaml 配置文件NodeNode 是 yaml-cpp 中的核心概念,它用于存储解析后的 yaml 信息。yaml-cpp 中的迭代NodeTypeyaml-cpp 写配置文件YAML基础语法YAML所表示的YAML Ain’t Markup Language,YAML 是

2020-09-14 21:05:49 8518 2

原创 c++读写JSON数据

文章目录JSON安装下载jsoncpp到linux生成静态库libjsoncpp.a拷贝头文件与静态库到/usr/local下JSON用法简介json简介valuewriterreader测试程序JSON安装JSON(JavaScript Object Notation)跟xml一样也是一种数据交换格式,了解json请参考其官网http://json.org。Jsoncpp是个跨平台的开源库,首先从http://jsoncpp.sourceforge.net/上下载jsoncpp库源码,github

2020-09-12 12:00:11 1087 1

转载 CMakeLists.txt语法

文章目录CMake 简介cmake的基础语法基本命令的使用语法CMake官方教程:https://cmake.org/cmake/help/v3.13/index.htmlCMake官方下载地址:https://cmake.org/download/CMake 简介CMake 是一个跨平台的自动化构建系统,它使用一个名为CMakeLists.txt的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windows Visual C++ 的 projects/works

2020-09-12 09:45:29 388

原创 Redis教程

文章目录一、简介Redis简介Redis 优势Redis与其他key-value存储有什么不同?Redis安装window下安装Linux下安装ubuntu 下安装Redis配置什么是守护进程配置redis外网可访问Redis数据类型string(字符串)Hash(哈希)List(列表)Set(集合)zset(sorted set :有序集合)各个数据类型应用场景Redis支持多个数据库Redis命令有时候会有中文乱码。Redis 键(key)Redis字符串(string)一、简介Redis简介Re

2020-09-09 20:21:25 304

原创 Ubuntu20.04安装kafka

文章目录简介为什么需要消息中间件Kafka一代 - 消息队列Kafka二代 - PartitionKafka三代 - Broker集群Kafka没那么简单安装JAVA(jdk)下载安装包解压安装包修改环境变量安装Zookeeper下载解压配置最后一步配置环境变量:启动Zookeeper启动客户端:配置开机启动zookeeper安装 kafka下载代码启动服务器创建一个topic发送消息启动一个consumer设置多代理集群(暂时没用上,后续补充)简介Kafka是一个实时数据处理系统,可以横向扩展、高可靠

2020-09-09 09:59:18 3149 2

原创 linux下读取串口数据,处理,保存

文章目录一、下载串口工具二、编程读取串口数据并打印一、下载串口工具$ sudo apt-get install cutecom$ sudo cutecom可以很方便的看到用的哪个串口,以及看到传输的数据二、编程读取串口数据并打印...

2020-08-14 15:48:04 5534 1

原创 通信协议-MODBUS报文

有时间补充

2020-08-05 16:27:20 323

原创 通信协议—CAN总线

有时间再补充

2020-08-05 16:25:46 162

原创 通信协议--UART通信

有时间再补充

2020-08-05 16:25:03 232

原创 通信协议--软件模拟SPI

文章目录一、SPI简介二、SPI传输模式模式0模式1模式2模式3一、SPI简介SPI的通信原理很简单,一般主从方式工作,这种模式通常有一个主设备和一个或多个从设备,通常采用的是4根线,它们是MISO(数据输入,针对主机来说)、MOSI(数据输出,针对主机来说)、SCLK(时钟,主机产生)、CS/SS(片选,一般由主机发送或者直接使能,通常为低电平有效)SCK:时钟信号,由主设备产生,所以主设备SCK信号为输出模式,从设备的SCK信号为输入模式。CS:使能信号,由主设备控制从设备,,所以主设备CS

2020-08-05 12:26:59 1769

原创 通信协议--软件模拟IIC

文章目录一、IIC简介二、IO口模拟IIC的驱动程序IO口初始化起始信号终止信号接收ACK应答一、IIC简介IIC(Inter-Integrated Circuit, 内部集成电路)总线是飞利浦公司开发的两线式串行总线,用于短距离传输,常用于微控制器及其外围设备,只有二根信号线,一根是双向的数据线SDA,另一根是时钟线SCL,两条线可以挂多个设备。 IIC设备(绝大多数)里有个固化的地址,只有在两条线上传输的值等于IIC设备的固化地址时,其才会作出响应。通常我们为了方便把IIC设备分为主设备和从设备,基

2020-08-04 17:44:02 1625 1

原创 通信协议--单总线协议

文章目录一、单总线简介二、单总线协议单总线初始化单总线写入单总线读取DS18B20用法读取温度(仅仅包含整数部分)读取温度(含小数部分)一、单总线简介1.定义:主机和从机通过1根线进行通信,在一条总线上可挂接的从器件数量几乎不受限制。2.特点:这是由达拉斯半导体公司推出的一项通信技术。它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的。3.优点:单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等。单总线各种详细介绍网上很多,此处不再赘述,直接进入正题(本文档以常

2020-08-03 16:25:57 2666 1

原创 第二节--Linux shell命令

文章目录一、shell基本系统维护命令二、Linux的用户管理三、Linux进程管理相关命令四、Linux文件系统的类型和结构五、文件系统相关命令一、shell基本系统维护命令man 、passwd 、su、echo命令的用法date、clear、df、du命令的用法获取联机帮助man使用man命令可以找到特定的联机帮助页,并提供简短的命令说明。一般语法格式为联机帮助页提供了指定命令commandname的相关信息,包括:名称、函数、语法以及可选参数描述等。无论帮助有多长,都遵循这个格

2020-07-31 16:26:23 687

原创 第一节--软件包管理及shell命令

文章目录一、linux介绍二、补充-linux起源三、deb软件包管理一四、Ded软件包管理二四、shell命令五、shell中的特殊字符一一、linux介绍Linux的发展各种Linux发行版本Linux体系结构命令终端Unix的起源:1969年,由KenThompson在AT&T贝尔实验室实现的。使用的是用汇编语言。1970年,KenThompson和DennisRitchie使用 C语言对整个系统进行了再加工和编写,使得Unix能够很容易的移植到其他硬件的计算机上。U

2020-07-29 10:40:22 534 1

原创 第十节--巩固练习

文章目录一、选择题(每题4分,共 60 分)程序题(每题20分,共40分)一、选择题(每题4分,共 60 分)1.在位运算中,某操作数 右移3位,其结果相当于 D                        A、操作数乘以6   B、操作数除以6  C、操作数乘以8   D、操作数除以82.下列语句定义pf为指向float类型变量f的指针, B 是正确的。float f, *pf=f; B、float f, *pf=&f; C、float *pf=&f, f

2020-07-21 11:06:35 794

原创 第九节--函数专题2

文章目录一、指针函数二、递归函数和函数指针一、指针函数指针函数是指一个函数的返回值为地址量的函数指针函数的定义的一般形式如下<数据类型> * <函数名称>(<参数说明>) { 语句序列; }返回值:全局变量的地址/static变量的地址 /字符串常量的地址/堆的地址下面程序是否有问题,若有问题,如何修改?#include <stdio.h>char * mystring(

2020-07-21 10:47:58 86

原创 第八节--函数专题1

文章目录一、函数的基本用法二、函数的参数传递三、数组在函数间传参一、函数的基本用法函数:函数是一个完成特定功能的代码模块,其程序代码独立,通常要求有返回值,也可以是空值。一般形式如下:<数据类型> <函数名称>( <形式参数说明> ) { 语句序列; return[(<表达式>)];} <数据类型>是整个函数的返回值类型:return[(<表达式>)]语句中表达式的

2020-07-21 10:26:37 86

原创 第七节--指针专题二

文章目录一、字符指针与字符串二、指针数组三、多级指针四、void指针和const六、补充-解读关键字volatile一、字符指针与字符串二、指针数组三、多级指针四、void指针和const六、补充-解读关键字volatile...

2020-07-21 00:05:26 139

原创 第六节--指针专题一

文章目录一、指针基本用法二、指针运算三、指针与数组四、指针与二维数组一、指针基本用法掌握指针的基本用法指 针:C程序设计中使用指针可以使程序简洁、紧凑、高效、有效地表示复杂的数据结构动态分配内存得到多于一个的函数返回值地址和变量:指针变量的说明:一般形式如下: <存储类型> <数据类型> * <指针变量名> ;例如,char *pName ;指针的存储类型是指针变量本身的存储类型。指针说明时指定的数据类型不是指

2020-07-20 17:40:44 541

原创 第五节--数组和字符串

文章目录一、一位数组二、二维数组三、字符数组四、字符串函数值strlen函数七、字符串函数之扩展用法一、一位数组掌握一维数组的使用数组概述:数组构造数据类型之一数组是具有一定顺序关系的若干个变量的集合,组成数组的各个变量称为数组的元素数组中各元素的数据类型要求相同,用数组名和下标确定。数组可以是一维的,也可以是多维的。一维数组:一维数组的定义所谓一维数组是指只有一个下标的数组。它在计算机的内存中是连续存储的。C语言中,一维数组的说明一般形式如下:<存储类型> &

2020-07-20 16:46:07 168

原创 第四节--控制语句

文章目录一、控制语句-if二、控制语句switch三、循环语句-while四、循环语句for五、循环辅助语句六、补充--程序的灵魂(算法)一、控制语句-if1、了解顺序语句,分支语句,循环语句2、掌握if~else语句的使用if-else语句:if (表达式)语句块1 else语句块2常见形式:1、简化形式:if(表达式) 语句块 例如: if(x>y) printf(“%d”, x);注意:语

2020-07-20 16:17:03 361

原创 第三节--输入输出专题

文章目录一、字符输出函数和格式输出函数二、字符输入函数和格式输入函数三、输入函数的垃圾处理及字符串的输入输出一、字符输出函数和格式输出函数数据输出:C语言无I/O语句,I/O操作由函数实现#include <stdio.h>字符输出函数:格式: putchar( c )参数: c为字符常量、变量或表达式功能:把字符c输出到显示器上返值:正常,为显示的代码值;例子,#include <stdio.h>main(){ int c; char a;

2020-07-20 15:23:47 212

原创 第二节--数据类型,常亮,变量以及运算符

文章目录一、数据类型一、数据类型1、数据类型分类-掌握2、基本数据类型-掌握3、强制类型转换数据类型:基本数据类型:逻辑类型。只有两个量true和false,表示逻辑真值和逻辑假值。整数类型。包括char, short, int和long。浮点类型。包括float和double。void类型。主要用于说明不返回值的函数或指向任一类型的指针等。bool类型 <stdbool.h> _Bool基本类型 //例如 if ( -1 ) x=12

2020-07-20 14:47:41 469

原创 第一节--必备Linux命令和C语言基础

一.环境安装1、 虚拟机安装2、linux系统安装3、常规配置环境搭建:1、VMware-workstation 102、ubuntu-14.04.5-desktop-i386.iso3、共享文件夹目录 :linux@xiaoyu:/mnt/hgfs$ lslinux-share文件和目录相关命令1、熟悉Linux的文件系统结构2、熟练使pwd命令3、熟练使用ls命令4、熟练使用cd命令5、熟练使用查看文件内容的命令6、熟练使用文件复制命令7、熟练使用文件移动命令8、熟练

2020-07-17 11:47:02 343

原创 基于C语言的最优时间片调度器实现

前言本时间片主要用于资源很小的51单片机上运行,如果用于更高性能的处理器,可以使用链表实现更自由的操作。时间片调度器和任务调度器的实现时间片调度器主要是有单片机定时中断控制,可自由设定不同时间的时间片。主要用于单片机裸机上运行。如果把每个时间片对应的任务运行时间缩的很短,基本就是一个多线程操作系统。直接上代码头文件/****************************************************************************作者:小鱼儿飞丫飞日期:

2020-07-02 17:56:49 988

原创 基于C语言的最优HSM状态机架构实现

一、双层状态机框架该状态机有两个父类状态机(可自由添加更多父类状态机)每个父类状态机内部有若干个子状态机(可自由添加更多子类状态机)二、直接上代码/****************************************************************************作者:小鱼儿飞丫飞日期:2020-6-19文件名:FSM层次状态机头文件*************************************************************

2020-06-20 16:05:04 3023 1

转载 FSM(状态机)、HFSM(分层状态机)、BT(行为树)的区别

游戏人工智能AI中最常听见的就是这三个词拉:FSM这个不用说拉,百度一大堆解释,简单将就是将游戏AI行为分为一个一个的状态,状态与状态之间的过渡通过事件的触...

2020-06-20 15:44:59 1712

原创 基于RK3308的ROS运行环境搭建和交叉编译

基于RK3308的ROS运行环境搭建和交叉编译固件编译环境准备工作软件包安装交叉编译工具链介绍下载 SDKSDK 目录结构全自动编译脚本烧写镜像文件第一步,编译固件(ubuntu18.04环境)更换根文件系统,默认的根文件系统只读的加载开发板SSH驱动添加关于ROS的python包加载adb驱动可以删除一些不必要的驱动,以减小固件大小,不知道可以省略此步骤。第二步,搭建交叉编译环境(ubuntu14.04环境)PC 端(Ubunut主机)安装 ROS开发板刷入官方给的ROS固件安装nfs服务,用于传输文件P

2020-06-04 13:47:27 5186 1

原创 利用python和tkinker做一个小球随机运动碰撞的模拟

最近在写随机拖地机的状态机程序,因为底层驱动封装暂时未完成,无法上机实测。就打算写一个上位机,模拟拖地机随机运动。本篇先记录随机小球运动模拟,后续再把状态机添加进去直接上程序,有详细注释:# coding: utf-8from tkinter import *import randomimport timeimport numpy as np##创建一个类,这个类含有两个参数,一...

2020-04-20 19:00:14 1614

原创 Python3下提示No module named 'tkinter'"问题解决

安装环境:ubuntu18.04查询其是否安装python3-tkpython-tk/python3-tk的类库需要在操作系统层面进行安装sudo apt search python3-tk如果没有安装,则需要安装sudo apt install python3-tk在安装完成之后,重新执行程序,然后报出同样的错误,问题仍然存在。如果发现有信息说,需要安装tk的开发类库,直接...

2020-04-20 15:41:47 3038 1

原创 python可视化学习网站

matplotlib官网: https://matplotlib.org/index.html

2020-04-20 13:08:14 842

转载 在keil中使用不初始化变量

我们进行程序设计的时候,都会知道,系统上电或复位时,会执行变量初始化操作,但是有些情况下,我们并不希望变量初始化,例如,在系统异常复位发生后,我们希望系统能够迅速恢复复位前的现场状况,这样就希望变量能够保留原先的值,而不被初始化。实际上,大家都知道,变量是存储在RAM中的,只要不掉电,变量的数值是不会改变的,只要我们不让系统进行初始化操作就可以了。不同的编译环境,有不同的设置方法,本文介绍在Ke...

2020-04-20 09:59:13 2758 1

原创 专利基础与专利挖掘

文章目录专利基础知识专利的价值专利的基本概念专利保护对象专利授权条件发明&实用新型外观设计专利的申请与审批流程专利的保护期限专利挖掘与技术交底专利挖掘的定义专利挖掘的方法对新产品的各个部分进行分解挖掘从行业内普遍存在的技术缺陷挖掘从所要达到的技术效果进行挖掘从规避他人专利的角度进行挖掘专利检测企业研发人员做专利检索的有益效果专利检索技术交底的撰写目的:作用:撰写思路撰写要求:总结回顾专利...

2020-04-18 18:15:23 727

原创 标准注释与文档,以及代码规范

手把手教你写_“华为”_的标准注释与文档,以及代码规范https://blog.csdn.net/zxnsirius/article/details/51138793编码规范——华为篇https://blog.csdn.net/qq_33499229/article/details/88677757?depth_1-utm_source=distribute.pc_relevant.none...

2020-04-15 17:23:33 177

转载 C语言实现简单有限状态机(FSM)

有限状态机(finite state machine)简称FSM,表示有限个状态及在这些状态之间的转移和动作等行为的数学模型,在计算机领域有着广泛的应用。FSM是一种逻辑单元内部的一种高效编程方法,在服务器编程中,服务器可以根据不同状态或者消息类型进行相应的处理逻辑,使得程序逻辑清晰易懂。状态机实现的方式有多种,下面讲述三种.使用if/else if语句实现的FSM使用if/else if语...

2020-04-15 17:13:29 784

转载 10分钟了解软件开发全过程

一套软件从提出需求到实现,最后到交付用户使用,可分为系统规划、系统分析、系统设计、系统实施和系统评价五个阶段。相应的这些阶段会输出相关文档,如可行性研究报告、系统分析报告、系统设计报告、系统测试报告和用户手册。且每个输出文档都是有联系的,如系统设计需要系统分析作为依据,系统实施需要系统设计报告作为依据,系统设计报告是程序员和用户沟通的桥梁等。系统开发方法结构化开发方法所谓结构化方法,就是整个...

2020-04-15 12:08:19 1418

原创 从理论到实践-卡尔曼滤波与行人目标追踪

文章目录卡尔曼滤波由来卡尔曼滤波公式一维卡尔曼滤波多维卡尔曼滤波基于卡尔曼滤波的行人位置估算确定状态表示方式确定基于当前状态的处理模型(运动模型/预测模型/状态方程)根据状态方程计算预测误差协方差矩阵:确定测量值缩放系数C确定测量噪声协方差矩阵创建单位矩阵python程序C++程序结论卡尔曼滤波由来根据根据贝叶斯滤波快速理解卡尔曼滤波Kalman Filter(KF)这篇文章,我们理解了卡尔...

2020-04-10 18:15:11 2572 3

转载 从理论到实践-高中生能看懂的详细通俗讲解卡尔曼滤波Kalman Filter原理及Python实现教程

文章目录破解概念上的认知枷锁:卡尔曼滤波做的事滤波算法的思路发展?如何结合“飞机的速度和雷达测量的飞机的位置 ”来估计飞机在t2时刻的位置?如何结合“飞机的速度,加速度,雷达测量的飞机的位置” 来估计飞机的位置?卡尔曼滤波怎么进行滤波的?程序实现原文链接:https://blog.csdn.net/varyshare/article/details/95065650注:如果你从我前面的文章一点...

2020-04-09 17:55:16 1195 1

转载 从理论到实战-如何理解那个把嫦娥送上天的卡尔曼滤波算法Kalman filter?

文章目录直观理解卡尔曼滤波怎么做的?卡尔曼滤波Python代码实践原文链接:https://zhuanlan.zhihu.com/p/77327349直观理解**首先卡尔曼滤波要解决的问题是什么?**我以我军发射一枚导弹攻击敌方某固定位置目标为例(搞科技的总要点情怀,老是讲啥小车运动,温度计这些就太low)。导弹需要每隔一秒开雷达测量下离目标的距离。然后由于雷达有误差,所以需要融合自己上个时...

2020-04-09 16:55:56 490 1

lcd12864最全中文资料

lcd12864最全中文资料,里面详细介绍了lcd12864的各种配置。

2018-12-13

空空如也

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

TA关注的人

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