自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 do-while(0)的妙用

经常会遇到一段程序或者宏定义里面用到do-while(0),当时不知道为什么要这么用,既然只执行一次为何非要添加循环。 实际体会后才感觉这一步用的狠妙。有网友总结的挺好,贴出来。谢谢大神。 https://blog.csdn.net/lplp90908/article/details/5040...

2020-05-12 09:32:37 21 0

转载 makefile, makefile.am 与makefile.in的联系

前言 依旧是这两周的任务,这篇主要是关于开源项目的Makefile。在已有代码基础上,进行功能扩展,增加.c/.h文件以及链接需要的线程库。这就牵涉到对Makefile的修改。好吧,刚开始接触,满版的各种变量与正则,表示相当纠结,然后很天真的想去看明白。。。之后,在网上就这个问题查了查资料,然后...

2020-05-07 09:44:09 23 0

转载 #pragma的几种用法

预编译指令#pragma有很多种用法,我敢保证很多程序员即使是一辈子也不会碰到其中的有些用法,是 的,他们的确很偏僻,我们也没有用他们的需求。所以,本文不会面面俱到,只是把几种常用的几种汇总 了一下。 1. #pragma once 保证头文件只被include一次,等同于 #ifndef ...

2019-07-22 13:55:53 1544 0

转载 项目里添加日志高效规范及实现

1. WHY 为什么要做日志? 原因1:跟踪应用的警告和错误,标识程序运行中的危险操作、错误操作,进而便于在出现问题时排查问题 原因2:跟踪崩溃bug,在开发过程中,日志可以帮助开发者和软件测试人员跟踪程序崩溃的原因 原因3:跟踪性能下降的问题范围,产品所反映出来的性能问题,很难在开发过程中暴...

2019-07-18 09:13:43 396 0

转载 Linux驱动的部分问题

选录自https://www.cnblogs.com/alantu2018/p/8994590.html 1、 Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备。 字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备...

2019-07-16 09:52:40 46 0

原创 栈与队列的区别

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

2019-07-05 17:21:09 192 0

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

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

2019-06-13 15:53:55 3543 0

转载 fatfs结构及源码分析。

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

2019-06-10 12:20:09 212 0

原创 #define 与 inline的区别

一、inline 相关内容转载于 作者:机器人小雪 链接:https://www.jianshu.com/p/8546f48a4a7b 来源:简书 __inline__ __attribute__((always_inline)) 的意思是强制内联.所有加 __inline__ __attr...

2019-06-06 11:18:11 401 0

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

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

2019-06-05 11:01:37 36 0

转载 STM32的RTC原理

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

2018-09-11 16:48:47 301 0

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

linux内核和其他一些开源的代码中,经常会遇到这样的代码: do{ ... }while(0) 这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢? 实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写...

2018-08-24 14:06:07 445 0

原创 FreeRTOS的一些定制宏

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

2018-08-23 09:27:42 250 0

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

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

2018-08-21 17:46:17 5031 0

转载 freeRTOS

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

2018-08-14 14:56:13 483 0

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

CFLAGS 表示用于 C 编译器的选项, CXXFLAGS 表示用于 C++ 编译器的选项。 这两个变量实际上涵盖了编译和汇编两个步骤。 CFLAGS: 指定头文件(.h文件)的路径,如:CFLAGS=-I/usr/include -I/path/include。同样地,安装一个包时会在安装路...

2018-08-13 09:48:50 104 0

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

Linux下我们可以用pwd命令来获取当前所执行命令的目录,在Makefile中对应可用PWD := $(shell pwd)来获取。但是如果子Makefile 文件是从别处执行的(通过make -f .../Makefile 执行),那么$(shell pwd)得到的目录即为执行make -f命...

2018-08-10 10:26:01 7986 0

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

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

2018-08-03 09:20:58 237 0

原创 typedef用法

基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。 至...

2018-07-31 09:02:46 83 0

原创 strtol函数的用法

相关函数: atof, atoi, atol, strtod, strtoul 表头文件: #include <stdlib.h> 定义函数: long int strtol(const char *nptr, char **endptr, int base) 函数说明...

2018-07-27 14:13:11 113 0

转载 RTC系统

一. RTC及驱动简介         RTC即real time clock实时时钟,主要用于为操作系统提供可靠的时间;当系统处于断电 的情况下,RTC记录操作系统时间,并可在电池供电情况下继续正常工作,当系统正常启动后,系统可从RTC读取时间信息,来确保断电后时间运行连续性。       ...

2018-07-25 09:20:11 337 0

转载 IIC 通讯协议

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

2018-07-23 16:42:25 2129 0

转载 CRC算法解析

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

2018-07-17 11:27:14 259 0

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

数据库相关函数:   1.sqlite3_open 作用:打开一个数据库 原型:int sqlite3_open(const char *dbname, sqlite3 **db) 参数:dbname:数据库名称            db:数据库的句柄 返回值:成功:SQLITE_...

2018-07-16 17:24:32 151 0

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

1、UART, SPI, IIC的详解 UART、SPI、IIC是经常用到的几个数据传输标准,下面分别总结一下: UART(Universal Asynchronous Receive Transmitter):也就是我们经常所说的串口,基本都用于调试。 主机和从机至少要接三根线,RX、TX...

2018-07-16 16:21:59 182 0

原创 linux内部sqlite3

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

2018-07-16 13:47:11 121 0

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

本文介绍c++里面的四个智能指针: auto_ptr, shared_ptr, weak_ptr, unique_ptr 其中后三个是c++11支持,并且第一个已经被c++11弃用。为什么要使用智能指针:我们知道c++的内存管理是让很多人头疼的事,当我们写一个new语句时,一般就会立即把delet...

2018-07-12 15:58:26 121 0

原创 C++map用法

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

2018-07-10 13:50:33 793 0

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

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

2018-07-10 10:50:59 79 0

转载 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.  ...

2018-07-09 11:02:59 1773 0

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

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

2018-07-06 15:56:32 54 0

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

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

2018-07-04 16:18:48 888 0

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

[前言:使用__FILE__和__LINE__来定位错误已经屡见不鲜,然而其中一些道理又有几个人仔细探究过。本文参考了Curtis Krauskopf的一篇名为Using __FILE__ and __LINE__ to Report Errors 的文章,希望达到解惑之效。]问题:当运行时错误产...

2018-07-04 16:15:01 2241 0

转载 netbeans快捷键

netbeans是一款php程序员使用效率非常高的一款ide工具,强悍补全功能,速度不错, 没有明显缺点。为各位分享一下netbeans的快捷键,祝各位早拿高薪。一、常用快捷键:1、在文件中查找指定内容 Ctrl+F2、在文件中替换指定内容 Ctrl+H3、在整个项目中查找指定内容 Ctrl+Sh...

2018-07-03 08:42:30 82 0

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

8、CCMoveTo创建的两个参数(float duration,const CCPoint& position),第一个参数为动作执行时间,第二个参数为移动目的坐标;   CCMoveBy的参数(float duration,const CCPoint&delta...

2018-04-27 19:45:51 93 0

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

1、replacescene用于切换场景,旧场景会被释放。2、pushScene用新场景切换旧场景,但不释放旧场景;   popScene将新场景释放,返回旧场景;   pushScene与popScene对应。3、游戏中控制按钮为一层,地图背景和NPC为一层,不同的层互不干扰。层无法抛开场景而独...

2018-04-26 19:53:56 76 0

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

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

2018-04-25 15:22:05 584 0

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

具体过程以及安装的工具见下面两个地址,我这里的步骤针对已经有过经验,但经验不足的学者。https://blog.csdn.net/longming_xu/article/details/29357815?locationNum=15&fps=1http://www.cocoachi...

2018-04-24 11:04:55 653 0

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

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

2018-03-11 09:52:25 518 0

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

一. 简介就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁。信号和槽机制是 Qt 的核心机制,可以让编程人员将互不相关的对象绑定在一起,实现对象之间的通信。信号当对象改变其状态时,信号就由该对象发射 (emit) 出...

2018-03-02 09:41:20 155 0

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