排序:
默认
按更新时间
按访问量

STM32的RTC原理

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

2018-09-11 16:48:47

阅读数:18

评论数:0

do-while(0)的用途。

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

2018-08-24 14:06:07

阅读数:18

评论数:0

FreeRTOS的一些定制宏

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

2018-08-23 09:27:42

阅读数:24

评论数:0

I-Cache与D-Cache的区别

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

2018-08-21 17:46:17

阅读数:46

评论数:0

freeRTOS

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

2018-08-14 14:56:13

阅读数:26

评论数:0

Makefile中的选项CFLAGS,LDFLAGS,LIBS

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

2018-08-13 09:48:50

阅读数:19

评论数:0

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

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

2018-08-10 10:26:01

阅读数:107

评论数:0

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

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

2018-08-03 09:20:58

阅读数:16

评论数:0

typedef用法

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

2018-07-31 09:02:46

阅读数:18

评论数:0

strtol函数的用法

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

2018-07-27 14:13:11

阅读数:22

评论数:0

RTC系统

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

2018-07-25 09:20:11

阅读数:12

评论数:0

IIC 通讯协议

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

2018-07-23 16:42:25

阅读数:19

评论数:0

CRC算法解析

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

2018-07-17 11:27:14

阅读数:24

评论数:0

Linux下sqlite3的相关函数原型

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

2018-07-16 17:24:32

阅读数:22

评论数:0

UART,SPI,IIC详解和区别

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

2018-07-16 16:21:59

阅读数:26

评论数:0

linux内部sqlite3

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

2018-07-16 13:47:11

阅读数:23

评论数:0

C++智能指针的用法

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

2018-07-12 15:58:26

阅读数:34

评论数:0

C++map用法

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

2018-07-10 13:50:33

阅读数:32

评论数:0

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

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

2018-07-10 10:50:59

阅读数:17

评论数: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

阅读数:101

评论数:0

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