自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (5)
  • 收藏
  • 关注

原创 systemctl service失效,在start后自动调用stop (ExecStop),排查分析及处理过程

问题:设定了一个systemctl,start后,发现相关配置没有生效service代码:[Unit]Description=echo test[Service]Type=simpleExecStart=/bin/echo startExecStop=/bin/echo stop[Install]WantedBy=multi-user.target配置过程:1. systemctl enable test.service2. systemctl damon-reloa

2020-09-07 13:45:25 9674 11

原创 MAC开发工具:ITERM2 log自动保存相关配置

上图中的“Automatically log session input to file in :”勾选后选定地址即可

2020-08-18 17:29:16 1694

转载 Linux 内核的文件 Cache 管理机制介绍

1 前言自从诞生以来,Linux 就被不断完善和普及,目前它已经成为主流通用操作系统之一,使用得非常广泛,它与 Windows、UNIX 一起占据了操作系统领域几乎所有的市场份额。特别是在高性能计算领域,Linux 已经成为一个占主导地位的操作系统,在2005年6月全球TOP500 计算机中,有 301 台部署的是 Linux 操作系统。因此,研究和使用 Linux 已经成为开发者的不可回...

2019-02-28 21:39:28 282

转载 linux中pid,tid, 以及 真实pid的关系

1、pid,tid,真实pid的使用进程pid: getpid() 线程tid: pthread_self() //进程内唯一,但是在不同进程则不唯一。线程pid: syscall(SYS_gettid) //系统内是唯一的#include <stdio.h>#include <pthread.h>#includ...

2019-02-14 16:50:21 1014

转载 linux下的缓存机制及清理buffer/cache/swap的方法梳理

 一、缓存机制介绍在Linux系统中,为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接操作磁盘。缓存机制优点:减少系统调用次数,降低CPU上下文切换和磁盘访问频率。CPU上下文切换:CPU给每个进程一定的服务时间,当时间片用完后,内核从正在运行的进程...

2019-01-25 20:19:57 643

转载 从"read"看系统调用的耗时

1、fread和read有何不同?先看两段代码:fread.cread.c两个文件的功能完全一样,打开同一个名为test.file的文件,并逐字节地读取整个文件。将它们编译后得到的可执行程序fread和read分别在同一台PC(linux系统)上执行,得到的如果如下:发现没有?fread与read的耗时相差数十倍之多!可见啊~ read一个字节...

2019-01-24 22:08:05 469

转载 怎么理解面向对象和面向过程到底的本质区别?

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 -----------------------------------------------面向过程的思维方式是分析综合。面向...

2019-01-22 16:36:57 627

转载 面向对象与面向过程的本质的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.cs...

2019-01-22 14:58:19 276

转载 C++中new 一个对象的时候加括号和不加括号的区别

 先把结论放上来: 加括号调用没有参数的构造函数,不加括号调用默认构造函数或唯一的构造函数,看需求 C++在new时的初始化的规律可能为:对于有构造函数的类,不论有没有括号,都用构造函数进行初始化;如果没有构造函数,则不加括号的new只分配内存空间,不进行内存的初始化,而加了括号的new会在分配内存的同时初始化为0。int *a = new int[100];int *b = new int[1...

2018-03-20 12:24:15 721

转载 C/C++ 指针函数返回值的一些问题

里面的代码我就不详细解释了,重点看第2行的定义形式。调用这个函数也非常简单:2.函数指针说的是的

2017-09-03 16:10:33 905

原创 缺少Microsoft Communications Control 控件

很简单,下载解压复制就可以,下载网址:http://download.csdn.net/download/peter_jjh/99376961.解压缩压缩包内包含3个文件:MSCOMM.SRGMSCOMM32.DEPmscomm32.ocx2.复制文件到指定路径:32位的系统,文件复制到C:\WINDOWS\SYSTEM32目录下;

2017-08-17 10:41:58 2596

原创 C++ MFC 简单 串口通信

根据一款教程,使用MFC进行了串口通讯的上位机的软件编程,教程网址如下,十分简单。http://download.csdn.net/download/peter_jjh/9937595问题:1) error LNK2001: 无法解析的外部符号在进行编译时,出现如上错误的原因有两个,分别是(1)部分函数声明了却未定义(2)部分动态链接库的编译方式未统一针对第

2017-08-17 10:11:43 28527 7

转载 C++ 用new和不用new创建类对象区别

今天在慕课网学习友元函数(C++远征之模版篇2-3)时,进行实例化对象时,可以使用new或者不使用new // 实例化Coordinate对象 Coordinate coor1 = new Coordinate(1,2); Coordinate coor1 (1,2);疑惑之后百度之,以下为他人的回答。 C++在创建对象的时候可以采用两种方式:(

2017-08-13 23:21:45 1723

转载 c++ try catch throw 简单用法

tyr catch throw 是c++的异常处理机制,当程序遇到一些意外的错误,(比如除数为0) 这是程序员可以使用一些基本的方法来处理这些异常首先看一个处理除数遇到0的例子#include using std::cout;using std::cin;using std::cerr;int fun(int & a, int & b){if(b == 0){

2017-08-12 19:33:34 783

转载 C/C++ 11个滤波算法代码汇总

转自极客工坊:http://www.geek-workshop.com/thread-7694-1-1.html ,感谢原作者 shenhaiyu 的汇总工作。原作者将这些代码运行Arduino平台上,使用的语言是C/C++。1、限幅滤波法(程序判断滤波法)2、中位值滤波法3、算术平均滤波法4、递推平均滤波法(滑动平均滤波法)5、中位值平均滤波法(防脉冲干扰平均

2017-08-08 14:13:46 10198

转载 const char*, char const*, char*const的区别

const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 事实上这个概念谁都有,只是三种声明方式非常相似很容易记混。 Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。 char * const cp; ( * 读成 pointer to

2017-08-04 16:51:52 242

原创 C语言 strstr语句使用中对0x00000000<NULL>有感,以及如何输出整段的字符串

今天在看stm32例程的时候用到了这个语句,该语句的用法如下:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。以上摘自百度百科:https://baike.baidu.com/item/strstr/811469?fr=aladdin该语句的头文件为string.h

2017-08-04 14:59:23 1183

转载 C语言 typedef和define的具体区别

1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926程序中的:area=PI*r*r 会替换为3.1415926*r*r如果你把#define语句中的数字9 写成字母g 预处理也照样带入。2)typedef是在编译时处理的。它在自己的作用域内给一

2017-08-03 14:25:16 474

原创 C语言 搜索字符串中的逗号有感(关于数据中的ASCII码)

在学习正点原子STM32课程的92讲中的过程中,包含一个子函数,NMEA_Comma_Pos,代码如下:#include "comma.h"unsigned char NMEA_Comma_Pos(unsigned char *buf, unsigned char cx){ unsigned char *p = buf; while (cx) {

2017-08-03 09:23:19 1616

原创 C语言 printf输出字符串数据

void main(){ unsigned char *x = "ab,sdf,sad,23432,cc"; data = x; printf("data = %c\n", *data); printf("data = %s\n", data); system("pause");}输出结果为data = adata = ab,sdf,sad,23432,cc

2017-08-02 15:46:28 4426

转载 C语言 const的用法

Const的使用1、定义常量(1)const修饰变量,以下两种定义形式在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。TYPE const ValueName = value; const TYPE ValueName = value;(2)将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不

2017-08-02 15:19:29 598

转载 基于STM32和GPS-NEO-6M模块实现GPS导航定位的

字符串

2017-08-01 15:50:59 20362 3

转载 关于vsprintf的用法

在正点原子的92节关于GPS的课程文件,usat3.c中有这样一段代码:void u3_printf(char* fmt,...) { u16 i,j; va_list ap; va_start(ap,fmt); vsprintf((char*)USART3_TX_BUF,fmt,ap); va_end(ap); i=strlen((const char*)

2017-08-01 14:18:46 2695

原创 基于STM32的GPS定位系统开发,以及Ucenter使用笔记

0前言Ucenter是u-blox开发的一个关于GPS的调试开发工具。

2017-08-01 10:57:35 6498

原创 学习笔记——CC2530 信道广播实现所谓点对点收发

源程序及源程序讲解见:CC2530 RF部分使用 ——实现点对点收发主要的子程序:void rf_send(char *pbuf, int len); //发送数据void rf_receive_isr(); //接收数据

2017-07-27 18:34:45 2012

原创 WIN8 Prolific USB-to-Serial Comm Port : 该设备无法启动。 (代码 10)

原因:WIN8自动安装了不合适的驱动。解决方法就是控制面板-设备和打印机-你电脑名字的一个图标,点击右键-设备安装设置-选择否,从不安装。然后确定。把原来的出错驱动卸载,安装自己需要的驱动即可。

2017-07-27 09:29:41 3556 1

转载 CC2530 RF部分使用 ——实现点对点收发

1.前言本文将分析一个利用CC2530实现无线串口,文中将会列举部分代码并对CC2530的具体操作进行分析。本文的具体的内容包括以下几个部分CC2530是符合802.15.4标准的无线收发芯片,但是本文并没有遵守802.15.4协议规则,在发送过程中忽略了网络ID、源地址和目标地址等参数,在接收的过程中禁止了帧过滤。通过发送和接收过程的处理使得CC2530无线部分的使用尽可

2017-07-25 16:08:05 1888

转载 网络基础TCP/IP通信协议

CP(Transmission Control Protocol) 传输控制协议三次握手TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) U

2017-07-02 11:18:36 429

转载 python进阶学习笔记(大纲)——摘自慕课网 python进阶

l  函数式编程——高阶函数,函数本身可以作为另一个变量传入另一个函数,例如内置的sorted,map,reduce,filter等。闭包,用于返回函数。匿名函数,lambda,存在限制,只有一个表达式。装饰器,可以将一个函数转化为另一个函数,用于动态增加函数的功能。l  模块和包——避免命名冲突引用模块__future__l  面向对象编程——类和实例,属性和方法,类属性和实例属性;l  类的继

2017-04-13 10:16:01 568

转载 python进阶学习笔记(七)——利用__call__将类转化为可调用的对象

python中 __call__在Python中,函数其实是一个对象:>>> f = abs>>> f.__name__'abs'>>> f(-123)123由于 f 可以被调用,所以,f 被称为可调用对象。所有的函数都是可调用对象。一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。我们把 Person 类变

2017-04-12 21:57:14 558

转载 python进阶学习笔记(六)——封装中的 @property,以及私有变量的说明(转载)

python中 @property考察 Student 类:class Student(object): def __init__(self, name, score): self.name = name self.score = score当我们想要修改一个 Student 的 scroe 属性时,可以这么写:s = Stu

2017-04-12 16:30:55 384

转载 python进阶学习笔记(五)——创建实例属性、初始化实例属性

python中创建实例属性虽然可以通过Person类创建出xiaoming、xiaohong等实例,但是这些实例看上除了地址不同外,没有什么其他不同。在现实世界中,区分xiaoming、xiaohong要依靠他们各自的名字、性别、生日等属性。如何让每个实例拥有各自不同的属性?由于Python是动态语言,对每一个实例,都可以直接给他们的属性赋值,例如,给xiaoming这个实

2017-04-11 20:06:04 495

转载 python进阶学习笔记(四)——python中访问限制、创建类属性、定义实例方法、定义类方法、类的继承

python中访问限制我们可以给一个实例绑定很多属性,如果有些属性不希望被外部访问到怎么办?Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。看例子:class Person(object): def __init__(self, name): self.name = name

2017-04-11 09:56:34 919

转载 python进阶学习笔记(三)——实现python任意个数的关键字参数

python中初始化实例属性虽然我们可以自由地给一个实例绑定各种属性,但是,现实世界中,一种类型的实例应该拥有相同名字的属性。例如,Person类应该在创建的时候就拥有 name、gender 和 birth 属性,怎么办?在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为

2017-04-10 19:51:36 1484

转载 python进阶学习笔记(二)——闭包、装饰器、偏函数

python中闭包和装饰器

2017-04-09 14:38:07 932

转载 python进阶学习笔记(一)——高阶函数

filter()filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数:def i

2017-04-08 15:35:52 442

转载 python爬虫——beautifulsoup4使用学习

Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下:Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。Beautiful Soup自动将输入文档转换为Unicode编码,输

2017-04-07 10:03:09 465

原创 python正则表达式学习 笔记

边界匹配:使用^和$放在开头和结尾进行全匹配。^$与\A \Z的区别:^从行开始处匹配,$从行结束处开始匹配;\A从字符串开始处匹配,\Z从字符串结束处匹配。

2017-03-31 11:32:36 462

转载 算法导论 笔记

摘自网易公开课,麻省理工学院公开课:算法导论,以及其他博客。第一课:课程简介及算法分析插入排序算法Insertion sort插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。经典排序算法网址:http://www.cnblogs.

2017-02-20 10:06:11 390

原创 Linux自学信息汇总

3.1用户和用户组/etc/group 存储当前用户系统中的所有用户信息。Linux中fdisk分区使用方法fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux 、fat32、 linux 、linux swap 、fat16 以及其实类Unix类操作系统的文件系统等。fdisk -l 查看硬盘及分区信息

2017-02-19 16:24:10 323

视觉SLAM十四讲 全套代码

SLAM (simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。 SLAM最早由Smith、Self和Cheeseman于1988年提出。 由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。

2017-11-02

VS2010之MFC串口通信的编写教程

VS2010之MFC串口通信的编写教程,详细参考:http://blog.csdn.net/peter_jjh/article/details/77294592

2017-08-17

简单的MFC串口通讯 源代码

简单的MFC串口通讯 源代码,还存在很多不足,适合新手用,详细讲解可以参考这个网址:http://blog.csdn.net/peter_jjh/article/details/77294592

2017-08-17

VS MFC串口通信 编写教程

使用vs2010,在MFC中进行串口通讯软件的编写。讲解详细利于新手学习。

2017-08-17

《GPS原理与接收机设计》电子工业出版社——谢钢

《GPS原理与接收机设计》电子工业出版社——谢钢 专业教材

2017-08-15

空空如也

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

TA关注的人

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