自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎来到我的空间

不积跬步无以至千里,愿与君共勉!

  • 博客(193)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 bzero与memset

bzero: 原型:void bzero(void *s, int n);     功能:置字节字符串s的前n个字节为零且包括‘\0’。   说明:bzero无返回值,并且使用strings.h头文件,strings.h曾经是posix标准的一部分,但是在POSIX.1-2001标准里面,这些函数被标记为了遗留函数而不推荐用。 在POSIX.1-2008标准里已经没有这些函数了。推荐使用me

2017-08-11 19:37:57 883

原创 数据结构(队列)学习心得

数据结构(队列)学习心得 1、队列的定义: 队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 队列是一种先进先出(First In First Out)的线性表,简称FIFO. 允许插入的一端称为队尾,允许删除的一端称为队头。假设队列是 q = (a1, a2, ….., an),如下图所示:2、循环队列: front 指针指向队头元素 rear 指针指向队尾

2017-08-04 16:36:30 6663

原创 对 IIC 总线的理解、调用函数以及常见面试问题

一、IIC 总线概述:IIC 即Inter-Integrated Circuit(集成电路总线) I2C总线是PHLIPS公司推出的一种串行总线, I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由总线上接收数据的器件则为接收器。 二、IIC 总线通

2017-07-22 20:38:21 2690

原创 Makefile学习心得

Makefile学习笔记                   --Tengteng一、makefile 概述:makefile 关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile 就像一

2017-07-21 20:55:22 720

原创 LCD1602,显示自编译字符

我们从CGROM表上可以看到,在表的最左边是一列可以允许用户自定义的CGRAM,从上往下看共16个,实际只有8个字节可用。它的字符码是00000000-00000111这8个地址,表的下面还有8个字节,但因为这个CGRAM的字符码规定0-2位为地址,3位无效,4-7全为零。因此CGRAM的字符码只有最后三位能用也就是8个字节了。等效为0000X111,X为无效位,最后三位为000-111共8个。如

2017-07-21 15:14:05 2140

原创 单片机通过软件实现按键消抖

通过上图可以看出理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动的现象,抖动时间的长短和按键的机械特性有关,一般为5~10ms。通常我们手动按键然后释放,这个动作中稳定闭合的时间超过了20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作,有专用的去抖动电路,也有专门的去抖动芯片,但通常我们采用软件延时的方法就可以解决抖动问题。软件实现如下://软件去抖if (0 == K

2017-07-19 17:05:10 4039 1

原创 数码管段选码表,你值得get

单片机接法为:Px.0~Px.7——a~h共阴数码管段选表,无小数点:unsigned char code distab[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};共阴数码管段选表,有小数点:unsigned char code distab[16] =

2017-07-19 16:35:05 14670 1

原创 网络编程中对TCP协议和UDP协议的理解

TCP协议和UDP协议:协议:计算机网络中进行数据交换的规则、标准或者是约定!TCP协议: 1、TCP是工作在传输层的!对上服务Socket接口,对下调用IP层! 2、TCP是面向连接的,通信前必须经过三次握手协议建立连接关系,然后才能够进行通信! 跟生活中打电话之前要拨通号码是一个意思! 3、TCP协议可以提供可靠传输,不怕丢包以及乱序! TCP

2017-07-16 19:31:05 500

转载 Altium Designer16 精心总结

转载自:http://blog.csdn.NET/qq_29350001/article/details/52199356以前是使用DXP2004来画图的,后来转行。想来已经有一年半的时间没有画过了。突然转到AD,有些不适应。用了下发觉很多功能确实比DXP要来的强大。花了不少时间和精力,将之前的一些经验技巧,进行整理总结。希望这篇文章,可以让人少走线些弯路。让初学者可以快速入门。好

2017-07-06 15:26:43 2989

转载 希尔排序

原文地址: http://www.cnblogs.com/fzhe/archive/2013/01/25/2871699.html希尔排序(Shell Sort)是插入排序的一种。是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 基本思想:     先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组。

2017-06-26 21:36:37 213

转载 揭秘 Cortex-A55,为何它是对未来数字世界举足轻重的处理器?

你是否已经听说了最近市场上发布了几款新的 CPU?它们的性能非常强大!没错,就是 ARM Cortex-A75 和 Cortex-A55,即首批基于新近发布的 DynamIQ 技术的 Cortex-A 系列处理器。关于Cortex-A75的详细信息,猛戳这里→深度长文!关于ARM最新高性能处理器Cortex-A75,你想知道的都在这里。这次我们来讨论 Cortex-A55,为何它是一款对未来数

2017-06-25 20:26:38 3558

转载 栈的压入弹出序列

题目描述[html] view plain copy     输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序

2017-06-24 22:44:35 237

转载 进一步理解!linux下bus,device,driver三者关系

1.bus:总线作为主机和外设的连接通道,有些总线是比较规范的,形成了很多协议。如PCI,USB,1394,IIC等。任何设备都可以选择合适的总线连接到主机。当然主机也可能就是CPU本身。内存也是通过BUS连接到主机的,可内存使用的总线不是外设总线,因此和内存使用相同类型的总线的设备,谈及BUS比较含糊。一块网卡在嵌入式开发中,直接通过内存总线接入到CPU。

2017-06-23 12:18:23 1350

转载 进程间通信 之 消息队列(Linux)

(转载自http://blog.csdn.net/ljianhui/article/details/10287879)下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。  每个数据块

2017-06-22 21:25:38 308

转载 SQL数据库基本操作

一、数据库及数据库表定义  1、创建基本表    create table ([列级完整性约束条件]                                                     [,[列级完整性约束条件]                                                     ………       

2017-06-21 21:27:57 227

原创 C语言基础之编码规范---排版

1、程序块要采用缩进风格编写,缩进的空格数为4个。 说明:对于由开发工具自动生成的代码可以有不一致。2、相对独立的程序块之间、变量说明之后必须加空行。3、较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。4、循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划

2017-06-20 20:56:40 1406

原创 通过互斥锁Mutex和条件变量Conditions实现动态平衡,模拟生活中卖包子的情景

实现代码如下:#include <stdio.h>#include <pthread.h>#include <stdlib.h>#define P_C 3 //3个生产者#define C_C 2 //2个消费者 int count = 0; //馒头的个数pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;pthread_cond_t con

2017-06-19 10:40:32 399

原创 Linux 进程与线程概念解析

线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者.传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程.现在,多线程技术已经被许多操作系统所支持,包括Windows/NT、Linux。进程:进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元;

2017-06-18 21:58:36 4081

转载 栈的压入弹出序列

题目描述[html] view plain copy print?输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(

2017-06-17 22:14:16 249

转载 干货!嵌入式Linux系统的构成和启动总结

在我们的周围,大量的嵌入式设备都是基于Linux系统来构建的,嵌入式Linux与主机Linux相比有着自己的一些特点,本文就嵌入式Linux系统的构成和启动过程做一些总结。 一、嵌入式Linux系统构成一个嵌入式Linux系统的典型结构,划分成了4个区:1、Bootloader区存放的是Bootloader,它负责

2017-06-16 21:18:40 275

转载 解密:Linux与Android的关系

虽然Android基于Linux内核,但是它与linux之间还是有很大的差别,比如android在Linux内核的基础上添加了自己所特有的驱动程序。下面我们就来分析一下它们之间究竟有什么关系?一Android为什么会选择Linux  成熟的操作系统有很多,但是Android为什么选择采用Linux内核呢?这就与Linux的一些特性有关了,比如:

2017-06-15 21:04:41 460

转载 linux进程管理与调度

进程的管理与调度进程管理 进程描述符及任务结构进程存放在叫做任务队列(tasklist)的双向循环链表中。链表中的每一项包含一个具体进程的所有信息,类型为task_struct,称为进程描述符(process descriptor),该结构定义在Linux/sched.h>文件中。Linux通过slab分配器分配task_struct结构,这样能达到对象复用和缓

2017-06-14 22:02:46 239

转载 CSDN-markdown编辑器语法——字体、字号与颜色

转载于 testcs_dn(微wx笑)  http://blog.csdn.net/testcs_dn/article/details/45719357Markdown是一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式。但是它本身是不支持修改字体、字号与颜色等功能的!  CSDN-markdown编辑器是其衍生版本,扩展了Ma

2017-06-13 20:26:03 232

转载 Linux下的C语言编程——线程编程基本操作

第一步创建线程int pthread_create(pthread_t * restict tidp,const pthread_attr_t * restict,void * (*start_rtn)(void),void * restrict arg)第一个参数:                 pthread_t * restict tidp 要创建的线程的线程ID指

2017-06-12 21:17:55 234

转载 C与C++的区别

C++是C发展来的!!! C++是面向对象的语言,而C是结构化的语言! C的所有代码在C++上都能应用,而C++的代码在C上不能应用!!! C++是功能更强大的C!!!C语言与VC++的区别有很多: 1,全新的程序程序思维,c语言是面向过程的,而VC++是面向对象的。 2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而VC++对于大多数的函数都是

2017-06-11 21:19:01 341

转载 C语言数据类型

C语言各种数据类型及其在系统中占的字节和取值范围2009-08-21 09:53c语言包含5个基本数据类型: void, int, float, double, 和 char.(另:C++ 定义了另外两个基本数据类型: bool 和 wchar_t. 一些基本数据类型能够被 signed, unsigned, short, 和 long 修饰所以short,long等等都不算基本数据类

2017-06-11 20:55:12 431

转载 嵌入式Linux中的根文件系统详解

首先要明白的是“什么是文件系统?”,文件系统是对一个存储设备上的数据和元数据进行组织的机制。这种机制有利于用户和操作系统的交互。在一篇oracle的技术文章中看到这样一句话“尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。这对 Linux 来说尤其如此,这是因为在 UNIX 传统中,它使用文件 I/O 机制管理硬件设备和数据文件”。

2017-06-10 21:53:22 830

转载 Linux(C/C++)下的文件操作open、fopen与freopen

Linux(C/C++)下的文件操作open、fopen与freopenopen是Linux下的底层系统调用函数,fopen与freopen c/c++下的标准I/O库函数,带输入/输出缓冲。linxu下的fopen是open的封装函数,fopen最终还是要调用底层的系统调用open。所以在linux下如果需要对设备进行明确的控制,那最好使用底层系统调用(open),

2017-06-09 22:56:51 859 1

转载 fwrite和fread函数的用法小结

fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。[cpp] view plain copy #include   size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);  size_t 

2017-06-08 22:59:29 500

原创 库函数和系统调用之间的联系和区别

库函数**1. 不同环境使用相似 2. 调用函数库 3. 与用户程序相联系 4. 用户地址空间相联系 5. 运行时间属于用户时间 6. 调用开销小 7. 共300+**系统调用**1. 各个操作系统使用不同 2. 调用内核服务 3. 是操作系统的一个入口 4. 在内核地址空间运行 5. 属于系统时间 6. 开销较大,用户空间和内核空间进行切换 7. 共

2017-06-07 22:16:46 731

原创 Linux操作系统下,通过系统调用和库函数分别实现对文件的拷贝

通过系统调用实现 file.copy通过库函数实现 file.copy

2017-06-06 22:01:12 3171

转载 如果你在学嵌入式底层驱动,内核模块编程将是你的第一课!小白学Linux之内核模块编程详解

Linux 内核模块编程是一个很重要的知识点。尤其是编写底层驱动程序时,一定会涉及到它。内核模块编程也是我学习 Linux 时第一节课所接触的知识。由此可以看出它的 important, 也可以看出其实它很 easy 。一、前言:1. 什么是内核模块1> 内核模块是具有独立功能的程序。它可以被单独编译,但是不能单独运行,它的运行必须被

2017-06-05 21:58:46 319

原创 printf 函数的输出条件

printf 函数输出的条件第一种情况:遇到某些转义字符,例如 ‘\n’ 等 会输出。第二种情况:遇到 scanf( )函数。第三种情况:调用fflush(stdout)。第四种情况:当缓冲区满的时候。

2017-06-04 20:30:19 1090

转载 二叉树递归与非递归遍历

二叉树的遍历常见的二叉树的遍历有三种方式:先序遍历(根结点,左子树,右子树)                                                            中序遍历(左子树,根结点,右子树)                                                           后续遍历(左子树,右子树,根

2017-06-03 20:02:54 329

转载 c语言数据结构

C语言各种数据类型及其在系统中占的字节和取值范围2009-08-21 09:53C语言包含5个基本数据类型: void, int, float, double, 和 char.(另:C++ 定义了另外两个基本数据类型: bool 和 wchar_t. 一些基本数据类型能够被 signed, unsigned, short, 和 long 修饰所以short,long等等都不算基本数据类

2017-06-02 22:45:55 631

转载 常用的头文件和函数

Linux常用头文件如下:POSIX标准定义的头文件        目录项         文件控制    文件名匹配类型    路径名模式匹配类型        组文件    网络数据库操作        口令文件    正则表达式        TAR归档值    终端I/O    符号常量    文件时间    字符扩展类型----

2017-06-01 22:52:19 366

转载 Linux定时清理文件定时任务

任务场景文件夹下持续进入文件,每隔10分钟进行文件清理操作,压缩转移至备份服务器。实现代码代码解析循环遍历文件夹进行文件获取,尤其需要注意该部分:ls所有以.txt为后缀的文件,如果不存在,将标准错误重定向到标准输出,这里2>&1 的意思就是将标准错误也输出到标准输出当中。重定向中 0-标准输出,1-标准输出,2-标准错误,而No such

2017-05-31 22:45:13 568

转载 ARM最强CPU/GPU来了!A75、G72首发:性能爆炸

如此前爆料,今天ARM在2017台北国际电脑展前夕,正式宣布基于ARM DynamIQ技术的全新移动处理器——Cortex-A75、ARM Cortex-A55 CPU和ARM Mali-G72 GPU。ARM介绍,三款新品旨在进一步加速提升人工智能体验。今年3月份,ARM针对人工智能推出DynamIQ技术,支持设备更加广泛,增强了机器学习,同时核心组合也更加灵活,比如1+3或者1+7的S

2017-05-30 21:48:40 2206

原创 分享给大家一个比较装逼的小代码

大家写完一个比较大的程序,然后让它运行时,我们都知道 .c文件在执行时是很快的,那么就不能够体现我们所写的程序是很大很复杂的,那么如何能提升这个文件的逼格呢?这时就需要借用延迟函数以及几条用来装逼的英文。 请看:int main(){ printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); printf("*

2017-05-29 21:56:06 272106 27

转载 C语言总结之异或运算的一些特性及巧妙应用

1.一个数和自己做异或的结果是0。如果需要一个常数0,x86平台的编译器可能会生成这样的指令: xorl %eax, %eax。不管eax寄存器里的值原来是多少,做异或运算都能得到0,这条指令比同样效果的 movl $0, %eax指令快,直接对寄存器做位运算比生成一个立即数再传送到寄存器要快一些。2.从异或的真值表中可以看出,和0做异或保持原值不变,和1做异或得到原值的相反值。可以利用这个特性

2017-05-28 21:54:51 993

基于51单片机12864液晶屏的贪吃蛇游戏

基于51单片机12864液晶屏的贪吃蛇游戏,通过红外遥控器控制,可以上下左右移动、暂停、背景音乐、多种难易程度和游戏地图供你选择、华丽滴菜单等,单片机型号为STC15F60S2,内含项目源代码、自己设计的15系列单片机原理图、PCB、项目文档以及项目演示视频照片等。

2018-03-19

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

TA关注的人

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