自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 栈与队列的区别

栈和队列都是限制了插入删除点的线性表(或者说是控制了访问点的线性表)(线性表:线性表是一种线性结构,它是一个含有n≥0个结点的有限序列,同一个线性表中的数据元素数据类型相同并且满足“一对一”的逻辑关系。“一对一”的逻辑关系指的是对于其中的结点,有且仅有一个开始结点没有前驱但有一个后继结点,有且仅有一个终端结点没有后继但有一个前驱结点,其它的结点都有且仅有一个前驱和一个后继结点。)这种受...

2019-07-05 17:21:09 2241

转载 C语言快速排序,以及注意点。

快速排序尤其适用于对大数据的排序,它的高速和高效无愧于“快速”两个字。虽然说它是“最常用”的,可对于初学者而言,用它的人却非常少。因为虽然很快,但它也是逻辑最复杂、最难理解的算法,因为快速排序要用到递归和函数调用。快速排序所采用的思想是分治的思想。所谓分治,就是指以一个数为基准,将序列中的其他数往它两边“扔”。以从小到大排序为例,比它小的都“扔”到它的左边,比它大的都“扔”到它的右边,然后左右两...

2019-06-13 15:53:55 21829 3

转载 fatfs结构及源码分析。

https://www.cnblogs目录一、API的函数功能简述二、FATFS主要数据结构  1、FAT32文件系统的结构  2、FATFS主要数据结构    ①FATFS    ②DIR    ③FIL    ④ FILINFO    ⑤win[512]    ⑥buffer三、函数功能与实现详细分析  ...

2019-06-10 12:20:09 2546

原创 #define 与 inline的区别

一、inline相关内容转载于作者:机器人小雪链接:https://www.jianshu.com/p/8546f48a4a7b来源:简书__inline__ __attribute__((always_inline)) 的意思是强制内联.所有加 __inline__ __attribute__((always_inline)) 修饰的函数在被调用的时候不会被编译成函数调用,而是直...

2019-06-06 11:18:11 1772

转载 通用FATFS文件系统的讲解。

https://wenku.baidu.com/view/0776db684431b90d6c85c7e3.html一种嵌入式文件系统,代码可以到官网下载。

2019-06-05 11:01:37 249

转载 STM32的RTC原理

一、RTC时钟框图分析(重要)先熟悉一下几个知识点:      1、STM32的实时时钟(RTC)是一个独立的定时器!      2、RTC模块和时钟配置系统(RCC_BDCR寄存器)是在后备区域,即在系统复位火从待机模式唤醒后RTC的设置和时间维持不变。RTC这章中,对RTC相关的寄存器的操作特别重要,我在这里不解释了,请查阅手册。。先上图!RTC时钟框图RTC时钟框图分...

2018-09-11 16:48:47 842

转载 do-while(0)的用途。

linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:1、辅助定义复杂的宏,避免引用的时候出错:举例来说,假设你需要定义这样一个...

2018-08-24 14:06:07 726

原创 FreeRTOS的一些定制宏

允许一定数量的参数存在,使得FreeRTOS内核可以剪裁来更加适合你的应用程序。这些项目,位于FreeRTOSConfig.h.文件中。每一个包含FreeRTOS源代码演示程序,都有它自己的FreeRTOSConfig.h文件。这里是一个普通的例子,如下为每个参量的说明: #ifndef FREERTOS_CONFIG_H#define FREERTOS_CONFIG_H/* 这里...

2018-08-23 09:27:42 704

原创 I-Cache与D-Cache的区别

I-Cache与D-Cache两者的区别:一方面是cache的行为。Icache大多都是顺序取指,碰到分支指令也会跳转,而Dcache访问的模式变化比较大.也就是前者所说的pattern的问题.指令只有读和refill没有写,而数据有读也有写.最重要的是冯氏的结构是指令和数据分离.I和D在一起只有相互干扰. 另一个方面就是,物理设计上考虑:  一个union的cache,同时需要数据和...

2018-08-21 17:46:17 18905

转载 freeRTOS

作为一个轻量级的操作系统,FreeRTOS 提供的功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能等,可基本满足较小系统的需要。FreeRTOS 内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU 总是让处于就绪态的、优先级最高的任务先运行。FreeRT0S 内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下...

2018-08-14 14:56:13 810

原创 Makefile中的选项CFLAGS,LDFLAGS,LIBS

CFLAGS 表示用于 C 编译器的选项,CXXFLAGS 表示用于 C++ 编译器的选项。这两个变量实际上涵盖了编译和汇编两个步骤。CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路径下建立一个include目录,当安装过程中出现问题时,试着把以前安装的包的include目录加入到该...

2018-08-13 09:48:50 833 1

翻译 makefile中获取当前执行路径的命令(PWD)

Linux下我们可以用pwd命令来获取当前所执行命令的目录,在Makefile中对应可用PWD := $(shell pwd)来获取。但是如果子Makefile 文件是从别处执行的(通过make -f .../Makefile 执行),那么$(shell pwd)得到的目录即为执行make -f命令的当前目录。在这种情况下, Makefile本身里面的命令不能对当前目录作出假设.那么如何获取被调用...

2018-08-10 10:26:01 29257 2

转载 数学证书原理以及公钥私钥加密的原理

1、基础知识      这部分内容主要解释一些概念和术语,最好是先理解这部分内容。1.1、公钥密码体制(public-key cryptography)公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下:加密:通过加密算法和公钥对内容(或者说明文)进行加密,得到密文。加密过程需要用到公钥。 解密:通过解密算法和私钥对密文进行解密,得到明文。解密过程需要用到解...

2018-08-03 09:20:58 807

原创 typedef用法

基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。至于typedef有什么微妙之处,请你接着看下面对几个问题的具体阐述。2. typedef &amp...

2018-07-31 09:02:46 179

原创 strtol函数的用法

相关函数: atof, atoi, atol, strtod, strtoul表头文件: #include <stdlib.h>定义函数: long int strtol(const char *nptr, char **endptr, int base)函数说明: strtol()会将参数nptr字符串根据参数base来转换成长整型数。参数base范围从2至36,或0。参数b...

2018-07-27 14:13:11 4479

转载 RTC系统

一. RTC及驱动简介        RTC即real time clock实时时钟,主要用于为操作系统提供可靠的时间;当系统处于断电 的情况下,RTC记录操作系统时间,并可在电池供电情况下继续正常工作,当系统正常启动后,系统可从RTC读取时间信息,来确保断电后时间运行连续性。        目前,很多CPU中都已集成RTC系统,且有许多独立的外接RTC芯片可用于实现RTC功能;   ...

2018-07-25 09:20:11 1535

转载 IIC 通讯协议

IIC总线一般串行数据通讯都有时钟和数据之分,有异步和同步之别.有单线,双线和三线等.I2C肯定是2线的(不算地线).I2C协议确实很科学,比3/4线的SPI要好,当然线多通讯速率相对就快了.I2C的原则是:在SCL=1(高电平)时,SDA千万别忽悠!!!否则,SDA下跳则"判罚"为"起始信号S",SDA上跳则"判罚"为"停止信号P".在SCL=0(低电平)时,SDA随便忽悠!!!...

2018-07-23 16:42:25 2809

转载 CRC算法解析

CRC算法是在通讯领域广泛采用的校验算法。原理我就不说了,这里说一下简单的程序实现。以下均采用CRC多项式为0x1021即:g(x) = x16+x12+x5+x0;CRC的基本原理就不说了,那个搜一下就有了。       最基本的算法应该是按位计算了,这个方法可以适用于所有长度的数据校验,最为灵活,但由于是按位计算,其效率并不是最优,只适用于对速度不敏感的场合。基本的算法如下:unsign...

2018-07-17 11:27:14 922

原创 Linux下sqlite3的相关函数原型

数据库相关函数: 1.sqlite3_open作用:打开一个数据库原型:int sqlite3_open(const char *dbname, sqlite3 **db)参数:dbname:数据库名称           db:数据库的句柄返回值:成功:SQLITE_OK头文件:#include <sqlite3.h> 2.sqlite3_cl...

2018-07-16 17:24:32 435

转载 UART,SPI,IIC详解和区别

1、UART, SPI, IIC的详解UART、SPI、IIC是经常用到的几个数据传输标准,下面分别总结一下:UART(Universal Asynchronous Receive Transmitter):也就是我们经常所说的串口,基本都用于调试。主机和从机至少要接三根线,RX、TX和GND。TX用于发送数据,RX用于接受数据(收发不是一根线,所以是全双工方式)。注意A和B通信A.T...

2018-07-16 16:21:59 482

原创 linux内部sqlite3

在Linux下使用sqlite3,要先安装好,不然无法使用。特点:1.数据库(database)文件的后缀为xx.db2.数据库相关命令都是以.开头。------------以下使用的people和student是我们制定的表的名字,不是命令名-------------------------一:命令<1>打开某个数据库文件中sqlite3  test.db<2>查看所有的...

2018-07-16 13:47:11 252

转载 C++智能指针的用法

本文介绍c++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_ptr 其中后三个是c++11支持,并且第一个已经被c++11弃用。为什么要使用智能指针:我们知道c++的内存管理是让很多人头疼的事,当我们写一个new语句时,一般就会立即把delete语句直接也写了,但是我们不能避免程序还未执行到delete时就跳转了或者在函数中没有执行到最后的de...

2018-07-12 15:58:26 223

原创 C++map用法

Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!1. map最基本的构造函数;   map<string , int >mapstring;         map<int ,string >mapint;   map<sring, char>mapstring;   ...

2018-07-10 13:50:33 1274

转载 C++的nothrow介绍以及使用方法

在C中,使用malloc等分配内存的函数时,一定要检查其返回值是否为”空指针”,并以此作为检查内存操作是否成功的依据,这种Test-for-NULL代码形式是一种良好的编程习惯,也是编写可靠程序所必需的。在C++中new在申请内存失败时默认会抛出一个std::bad_alloc 异常。如果出现这个异常,那就意味着内存耗尽,或者有其它原因导致内存分配失败。所以,按照C++标准,如果想检查new是否成...

2018-07-10 10:50:59 379

转载 usb通信时HOST和DEVICE要做的事情

转自:http://blog.chinaunix.net/uid-23795818-id-2385141.htmlHOST端要做的事情:硬件和软件host端需要的硬件是:USB host controller and a root hub with one or more USB ports.           软件是: an operating system that enables devi...

2018-07-09 11:02:59 3981

原创 关于memcpy()与memmove的区别 。

memcpy()只是memmove()的一个子集memcpy()在执行内存重叠的情况下时,就会发生错误,而memmove()不会void *memmove(void *dest, const void *src, size_t count){ assert((dest!=0)&&(src!=0)); unsigned char *pdest =(char * )dest...

2018-07-06 15:56:32 136

转载 在 C/C++ 语言中特定的宏,比如__FILE__ __LINE__ __DATE__ __TIME__ __FUNC__

__FILE____LINE____DATE____TIME____FUNC__ __FUNCTION__  在Visual Studio 2005中,默认情况下,此特性是激活的,但不能与/EP和/P编译选项同时使用。请注意在IDE环境中,不能识别__func__ ,而要用__FUNCTION__ 代替。Comeau的用户也应使用 __FUNCTION__ ,而不是 __func__ 。C++ B...

2018-07-04 16:18:48 1508

转载 使用__FILE__和__LINE__来定位错误

[前言:使用__FILE__和__LINE__来定位错误已经屡见不鲜,然而其中一些道理又有几个人仔细探究过。本文参考了Curtis Krauskopf的一篇名为Using __FILE__ and __LINE__ to Report Errors 的文章,希望达到解惑之效。]问题:当运行时错误产生时,我怎样才能得到包含C++文件名和行号的字符串信息?回答:在C++中的__FILE__预编译指示器...

2018-07-04 16:15:01 3301

转载 netbeans快捷键

netbeans是一款php程序员使用效率非常高的一款ide工具,强悍补全功能,速度不错, 没有明显缺点。为各位分享一下netbeans的快捷键,祝各位早拿高薪。一、常用快捷键:1、在文件中查找指定内容 Ctrl+F2、在文件中替换指定内容 Ctrl+H3、在整个项目中查找指定内容 Ctrl+Shift+f4、自动复制整行代码 Ctrl+Shift+上/下方向键5、注释/取消注释:ctrl+/ 此...

2018-07-03 08:42:30 270

原创 cocos小菜鸟学习笔记(2)

8、CCMoveTo创建的两个参数(float duration,const CCPoint& position),第一个参数为动作执行时间,第二个参数为移动目的坐标;   CCMoveBy的参数(float duration,const CCPoint&deltaPosition),第一个参数也是时间,但第二个参数是要移动的距离, 例如:ccp(250,150)为向x方向移动25...

2018-04-27 19:45:51 234

原创 cocos2d-x2.1.4+vs2010,cocos小菜鸟学习笔记(1)

1、replacescene用于切换场景,旧场景会被释放。2、pushScene用新场景切换旧场景,但不释放旧场景;   popScene将新场景释放,返回旧场景;   pushScene与popScene对应。3、游戏中控制按钮为一层,地图背景和NPC为一层,不同的层互不干扰。层无法抛开场景而独立存在。4、cocos2d-x里创建对象的方式大多数是create或以create开头的函数。5、层必...

2018-04-26 19:53:56 210

原创 51单片机多位数码管动态扫描显示变化数据

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换sbit LATCH1=P2^2;//定义锁存使能端口 段锁存sbit LATCH2=P2^3;//                 位锁存unsigned char code dofl...

2018-04-25 15:22:05 2201

原创 cocos2d-x程序打包到安卓的简化过程

具体过程以及安装的工具见下面两个地址,我这里的步骤针对已经有过经验,但经验不足的学者。https://blog.csdn.net/longming_xu/article/details/29357815?locationNum=15&fps=1http://www.cocoachina.com/bbs/read.php?tid=3339371、新建项目创建新的cocos工程命令:cocos...

2018-04-24 11:04:55 945

转载 TCP长连接与短连接的区别

当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次挥手,所以说每个连接的建立都是需要资源消耗和时间消耗的 示意图:                                                                 ...

2018-03-11 09:52:25 620

转载 qt入门之信号与槽机制

一. 简介就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁。信号和槽机制是 Qt 的核心机制,可以让编程人员将互不相关的对象绑定在一起,实现对象之间的通信。信号当对象改变其状态时,信号就由该对象发射 (emit) 出去,而且对象只负责发送信号,它不知道另一端是谁在接收这个信号。这样就做到了真正的信息封装,能确保对象被...

2018-03-02 09:41:20 282

转载 深入理解c语言中字符串处理函数strlen,strcpy,strcat,strcmp

在linux C 编程中,我们经常遇到字符串的处理,最多的就是字符串的长度、拷贝字符串、比较字符串等;当然现在的C库中为我们提供了很多字符串处理函数。熟练的运用这些函数,可以减少编程工作量,这里介绍几个常用的字符串函数,并编写一些程序,如果没有这些库函数,我们将如何实现其功能;1.求字符串长度函数 strlen头文件:string.h 函数原型:size_t strlen(co

2018-01-10 11:01:27 2457

转载 arm的GPIO简介

GPIO(General Purpose I/O Ports)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平或者通过它们读入引脚的状态-是高电平或是低电平。GPIO口一是个比较重要的概念,用户可以通过GPIO口和硬件进行数据交互(如UART),控制硬件工作(如LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。GPIO口的使用非常广泛。

2018-01-08 10:23:25 4209

转载 c++中的四种类型转换的区别

类型转换有c风格的,当然还有c++风格的。c风格的转换的格式很简单(TYPE)EXPRESSION;   但是c风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换 成指向非const对象的指针,把一个指向基类对象的指针转换成指向一个派生类对象的指针,这两种转换之间的差别是巨大的,但是传统的c语言风

2017-10-13 18:58:29 400

原创 进程间常见通信方式间的区别,各自的优缺点,以及怎样选择

管道:只能单向传递,且只能在有亲缘关系的进程中使用  有名管道:也是单向传递,但可以在非亲缘进程中使用   信号量:可以用来控制多个进程对共享资源的访问  消息队列:消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点;  信号:信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。  共享内存:由一个进程创建,但多个进程都可以访问。往往与其

2017-10-12 20:01:14 1181

转载 select,poll,epoll的区别

select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用

2017-10-08 19:08:34 168

中级软件开发工程师考试资料

包括2012-2016历年真题以及解析,以及软考所需知识点讲解,模拟练习题等

2018-04-24

空空如也

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

TA关注的人

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