自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

樊茂林的博客

天生我材必有用

  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 platform总线按键驱动分析(精华版)

驱动做了三个多星期了,从helloworld到LED再到PlatformLED,现在终于到了按键驱动,对于驱动的理解深刻了不少,从完全看不懂到现在能够独立分析,进步很大,今天完成了按键驱动,做一个总结性的分享,给后面的自己看!加油!按键驱动:与之前不同,这次将按

2017-08-28 13:53:30 2288 3

转载 Linux驱动中的platform总线分析

最近在复习platform总线相关的知识,碰到一篇感觉不错的文章。转载自:http://blog.csdn.net/pillarbuaa/article/details/7680372概述从Linux2.6内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver 。Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_devi

2017-08-27 20:48:14 6757

转载 版本控制系统GIT和SVN的区别

两个都使用过,但是就保存代码来说,我偏向于SVN,而且用的比较熟练。但是GIT也有它的优势所在。1)Git是分布式的,SVN不是:这 是git和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上,一段时间后再提交、合并,也可以不用联网在本地提交;如果你能理解这个概念,那么你就已经上手一半了。需要做一点声明,GIT并 不是目前第

2017-08-19 15:34:13 1348

转载 串口通信数据位长度对传输数据的影响

针对串口通信,关于设置数据位长度对通信的影响,如图: 在串口数据通信中,会看到串口参数设置。其中“数据位”设置,共有四档选项,分别是8、7、6、5。那么改变这个参数会对数据的传输有什么影响呢?我来做个试验,通过示波器观察通信过程,能够分析结果如下:例如数据位设置为5。那么就相当于规定了每个传输字节只能由5个二进制位来表示,例如:11111,10110,01110等。也就是说,这个RS232口只能发

2017-08-17 20:03:43 6047

原创 用buildroot制作交叉编译器

以前做文件系统的时候制作过交叉编译器,现在重新做一遍总结一下。认识交叉编译器交叉编译器简介 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码。比如我们在pc下编译的代码,想要在arm开发板上运行,就需要用交叉编译器编译pc端的代码,然后才能在arm板上运行。制作交叉编译器过程把buildroot上传到opt目录下我这里有.bin文件,也可以直接百度下载buildroot压缩包,重

2017-08-17 18:27:30 890

原创 二叉树的操作:创建、遍历、求树的深度、叶子结点数

二叉树认识二叉树在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。在该图中,用’#’表示空节点,我们真正要创建的树为有ABCD字符。先序遍历的方式创建二叉树int creatBitree(struct Bitnode *(*T)){ char data; // data = getc

2017-08-16 12:39:14 3798 1

原创 排序算法学习:快速的桶排序

排序原理 假设现在要对5 3 5 2 8这几个数进行排序。我们申请一个大小为9的数组(待排序数中最大数+1),假设为9个木桶,把9个木桶置为0,如图: 然后在对应桶的编号(这就是为什么要设置为待排序数组中最大数+1了)中标记1,如图在a[5]中标记为1,表示待排数组中有5,并且5在a[5]这个位置。 继续向后标记如果遇到重复的数字,比如两个5,就在该位置a[5]置为2,表示有两个5 把所有要

2017-08-14 17:18:24 348

原创 排序算法学习:冒泡、选择、快速

排序的相关概念排序:将一组杂乱无章的数据按一定的规律顺次排列起来。数据表( data list): 它是待排序数据对象的有限集合。排序码(key):通常数据对象有多个属性域,即多个数据成员组成,其中有一个属性域可用来区分对象,作为排序依据。该域即为排序码。每个数据表用哪个属性域作为排序码,要视具体的应用需要而定。分类 内排序:指在排序期间数据对象全部存放在内存的排序; 外排序:指在排序期间全部

2017-08-13 20:22:36 369

原创 单向链表的逆序,不使用额外节点存储实现

链表的逆序是常见考题,今天来简单学习使用如何实现单向链表的逆序。逆序过程初始链表状态 初始状态,prev是NULL,head指向当前的头节点A,next指向A节点的下一个节点B。首先从A节点开始逆序,将A节点的next指针指向prev,因为prev的当前值是NULL,所以A节点就从链表中脱离出来了,然后移动head和next指针,使它们分别指向B节点和B的下一个节点C(因为当前的next已经指向B

2017-08-12 10:00:20 688

原创 单向链表的节点插入与删除

理解了链表的创建后,其他链表操作也变得比较简单,对上次的代码做了些修改,今天来记录一下自己对链表节点的插入与删除操作的学习。在某个节点后插入节点struct node *insert(struct node *head, int datanum, struct node *new){ struct node *p1; if(head == NULL)//是空链表时 {

2017-08-10 20:33:40 1244

原创 创建N个单向链表对它进行摧毁和清空操作

摧毁和清空的含义及区别摧毁是先销毁了链表的头,然后接着一个一个的把后面的销毁了,这样这个链表就不能再使用了,即把包括头的所有节点全部释放。清空是先保留了链表的头,然后把头后面的所有的都销毁,最后把头里指向下一个的指针设为空,这样就相当与清空了,但这个链表还在,还可以继续使用;即保留了头,后面的全部释放。区别:清空是链表的头还在,可以继续插入节点;销毁就是链表没了,整个链表(包括头)的空间都被释放了,

2017-08-09 15:43:05 670

原创 单向链表的创建和遍历

单向链表简介单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始; 链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点; 链表是由结点构成,head指针指向第一个成为表头结点,而终止于最后一个指向nuLL的指针。创建单向链表一个简单的单向链表创建过程说明: 图中的p为

2017-08-08 15:40:56 486

转载 c语言中基本数据类型printf()对应格式

printf() printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。printf()函数的调用格式为: printf(“<格式化字符串>”, <参量表>);其中格式化字符串包括两部分内容:一部分是正常字符, 这些字符将按原样输出;另一部分是格式化规定字符, 以”%”开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必

2017-08-07 16:35:28 7898

原创 关于Markdown,吞文本问题

若str1==str2,则返回零; 若str1为什么后面的字不显示?解决方法:若str1==str2,则返回零; 若str1< str2,则返回负数; 若str1>str2,则返回正数。 matlab中函数,strcmp(s1,s2) 判断两个字符串s1和s2是否相同,相同返回true ,不同返回false“<s”也许在markdown里面是一个语法,不显示后面的文本内容,你要把它们分开,

2017-08-07 16:31:00 475

原创 常见字符串函数的学习总结

str系列,mem系列,常见字符串函数

2017-08-07 16:15:18 317

原创 C程序内存布局学习总结

C程序的编译过程由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-链接三个阶段。编译过程把c语言文本文件生成汇编程序,汇编过程把汇编程序形成二进制机器代码,链接过程则将各个源文件生成的二进制机器代码文件组合成一个文件。C语言编写的程序经过编译-连接后,将形成一个统一格式的二进制可执行文件,这个格式是一个依照可执行文件格式的,可以被系统识别,并且加载到内存中执行的,它由几个部分

2017-08-06 17:16:58 412

原创 Linux下安装及使用sqlite3数据库

数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。SQL数据库简介SQL是Structured Query

2017-08-05 20:24:29 9638 1

原创 LINUX下操作GIT远程仓库与本地仓库同步

GIT简介来源Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。功能1、从服务器上克隆数据库(包括代码和版本信息)到单机上。 2、在自己的机器上创建分支,修改代码。 3、在单机上自己创建的分支上提交代码。 4、在单机上合并分支。 5、新建一个分支,把

2017-08-05 15:36:10 1285

原创 centos下安装使用SVN

SVN简介svn功能实现SVN 全名 Subversion,即版本控制系统,它是一个自由/开源的同时支持多种操作系统的版本控制系统。在 Subversion 管理下,文件和目录可以回到任意时刻的版本,以及比较任意两个时刻的版本变动。 我们称用来存放上传档案的地方就做 Repository。用中文来说,有点像是档案仓库的意思。不过,通常我们还是使用 Repository 这个名词。基本上,第一次我们

2017-08-04 15:59:34 561

原创 centos下搭建ftp服务器

FTP简介FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:”下载”(Download)和”上传”(Upload)。”

2017-08-04 13:59:43 487

原创 centos下安装配置TFTP服务器

TFTP简介TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。安装TFTP服务器检查是否有TFTP服务器软件包[fanmaolin@centos6 ~]$ rpm -qa | grep tftp下载安装服务器软件包[fanmaolin

2017-08-03 19:22:50 818

原创 用C代码写贪吃蛇游戏--打印食物

贪吃蛇游戏创建食物:1、食物的产生要求是随机的 2、蛇吃掉食物后会长大 3、蛇吃掉食物后会再次产生食物因为食物的产生是随机的,要求用C产生随机数:产生1-6的10个随机数int main(void){ int i = 0; for(i=0;i<10;i++) { printf("%d ",rand()%6+1); } printf("\n

2017-08-02 15:49:01 2992

原创 用C代码写贪吃蛇游戏--用按键控制蛇移动

通过按键控制蛇的移动,首先需要读取按键,通过按键来控制。通过百度后得知用kbhit();用一小段代码进行测试:一直输出Hello World,直到用户按Esc结束#include "stdafx.h"#include<stdio.h>#include<conio.h>#include<stdlib.h>int main(void){ char ch; while(ch!=2

2017-08-02 15:03:32 11806 3

原创 用C代码写贪吃蛇游戏--创建一条蛇并移动

***********************************************开发工具:VC6.0中文版**********************************************前段时间实习做了贪吃蛇游戏,现在抽空进行总结和整理,重点是整理思路,如何让一个想法变成代码。1、创建一条蛇2、让这条蛇移动3、按键控制蛇的移动4、创建食

2017-08-02 13:12:09 8920

树莓派3GPIO

绝对好用并且详细的GPIO引脚开发手册,用了就知道,快来吧

2017-12-17

空空如也

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

TA关注的人

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