- 博客(25)
- 资源 (11)
- 收藏
- 关注
转载 I2C和SPI,UART的区别(转)
SPI--Serial Peripheral Interface,(Serial Peripheral Interface:串行外设接口)串行外围设备接口,是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。I2C--INTER-IC(INTER IC BUS:意为IC之间总线)串行总线
2014-04-06 22:52:22
2099
原创 【一天一篇CPP】多态性和虚函数和虚析构函数和纯虚函数和抽象类
1. 什么是多态性?多态性是面向对象的一个重要特征。向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为【例如:上课了,学生上课,程序员在敲代码;下课了,学生下课,程序员还在敲代码。开玩笑的】。其实我们也接触了一些多态性的例子,例如函数的重载、运算符重载、模板等...从系统实现的角度,多态性分为两类:静态多态性【函数重载和运算符重载和模板属于这一类,静态多态性是编译时决定的,也叫
2013-10-12 13:42:34
814
原创 【一天一篇CPP】基类与派生类的转换(单向:从派生类赋值给基类,舍弃一部分)
我们知道一般的赋值兼容,如double d, int i, int *ip; d = i 可以直接赋值, i = d 可以舍弃小数赋值,而 ip = 1024 则出现错误,要添加强制转换,如 ip = (int *) 1024,则不算赋值兼容。不同数据之间的自动转换和赋值,称为赋值兼容。1. 那么基类对象和派生类对象是否存在赋值兼容关系?存在,但是是单向的【从派生类赋
2013-10-12 10:35:27
862
原创 【一天一篇CPP】多继承及其二义性(multiple inheritance,也叫多重继承,但不是多层继承)
1. 前面讨论的是单继承,就是一个子类只有一个直接父类。但有时一个派生类可由两个或多个基类,派生类从两个或多个基类中继承所需的属性。【例如一个学生,既是班干,又是社团部长】2. 形式: class D: public A, private B, protected C{ //D的成员}3.多重继承派生类的构造函数形式:D(int a, int b, int c):A(
2013-10-11 19:40:13
974
原创 【一天一篇CPP】派生类的构造函数和析构函数
1.基类的构造函数是不能继承的,在声明派生类时,派生类并没有把基类的构造函数继承过来,但是可以通过一种显式的声明来调用基类的构造函数。对于析构函数,系统会自动调用基类的析构函数,详细看下面的 “3注意点”。2.构造函数调用的例子:#include #include using namespace std;class Student{public: Student (in
2013-10-10 14:29:47
976
原创 【一天一篇CPP】继承和派生:基础知识和继承方式与访问属性
1.介绍:面向对象程序设计的4个特点:抽象、封装、继承、多态性。C++中的可重用性是通过继承这一机制来实现的。【父类派生出子类,子类继承于父类】。派生类是基类的具体化,基类是派生类的抽象。2.形式:在类的声明处class 派生类名 : [ 继承方式 ] 基类名{............//派生类新增加的成员};继承方式有:public(公用的),privat
2013-10-10 13:25:43
865
原创 【一天一篇CPP】不同类型数据间的转换【转换构造函数、类型转换函数】
1.自动转换:int i = 6; i += 7.5;2.显式类型转换: (类型名) 数据 或 类型名 (数据) 【前者为C语言的方式】3.用转换构造函数进行类型转换 -> 将其他类型数据转换为类的对象。 如:Complex (double r){real = r; imag = 0;}使用方法: Complex c1(3.5); 合法 Comple
2013-09-27 13:47:08
713
原创 【一天一篇CPP】重载运算符的实例
1.重载双目运算符未重载版本#include using namespace std;class String{public: String() { p = NULL; } String(char *str) { p = str; } void display() { cout << p<< endl;}private: char *p;};int main()
2013-09-27 11:40:57
1075
原创 【一天一篇CPP】运算符重载--对部分CPP运算符重载
1.例子:">"也一样。【这个重载处理位于stream】2.运算符重载函数定义方法: 函数类型 operator 运算符名称( 形参列表 ) {..........对运算符的重载处理......}例如想用 ' + ' 运算符来处理 Complex 类(复数类)的加法运算,函数原型可以是这样的: Complex operator + (Complex &c1,Complex &c2
2013-09-26 21:46:18
1395
原创 【一天一篇CPP】类模板
1.有时对类而言,两个或多个类,其功能是相同的,仅仅是数据类型不同。请看下面两个类:class Compare_int{public: Compare_int( int a, int b) {x = a; y = b;} int max(){return (x>y)? x : y;} int min(){return (x<y)? x : y;}private: int
2013-09-26 20:15:54
761
原创 【一天一篇CPP】友元和类
1.一般友元函数【就像可访问私有成员的一般函数】:一个例子:#include using namespace std;class Time{public: Time( int, int, int); friend void display(Time &);//先声明,使一般函数display可以访问本类的私有成员private: int hour, minute,
2013-09-26 19:45:22
800
原创 【一天一篇CPP】静态成员
1.静态数据成员的作用:它是类的不同对象的共享数据,它是全局变量的替代品!!一个例子:#include using namespace std;/*//错误初始化class Box{public: Box(int h) : height(h){} static int height;};*///正确初始化class Box{public: Box() {} B
2013-09-26 15:01:19
537
原创 【一天一篇CPP】对象的动态建立、释放、赋值和赋值
1.对象的动态建立和释放: Box *pt = new Box; delete pt;当 new 失败,返回0,被delete忽略!new则构造,felete则析构。2.对象的赋值: 对象名1 = 对象名2【对象1和2必须是同一个类,或对象2是对象1的派生类对象】提示:类的数据成员不能包括动态分配的数据,否则有可能出现严重错误【除非自己去重载 = 运算
2013-09-26 14:27:16
930
原创 【一天一篇CPP】对象与指针与数组 对象和const和指针和引用
1.对象和数组:对于Student::Student( int a )而言Student stud[3] = {60,70,80};表示分别让60,70,80作为三个数组元素对象的构造函数的参数。//编译系统只为每个对象的构造函数传递一个参数,避免歧义 易错例子: Student::Student(int = 1001, int = 18, int = 60),Student stud[
2013-09-24 22:10:31
614
原创 【一天一篇CPP】inline、类的存储,简单的构造函数、析构函数
1.inline 须知:一般非类成员的函数inline声明即可,在类成员函数中,若为inline声明,成员函数声明和成员函数的定义必须放在同一个文件。2.类的大小:经过sizeof测试,得知:一般的数据成员【不论const还算mutable还是】都要计算,不论任何类型的函数都不计入内。3.对于大小比较小的类,尽量用指针或引用作为函数的参数,而不是一个使用形参副本,这样不用复制构造它。但假如
2013-09-24 17:34:14
716
1
原创 用C语言模拟面向对象
这个代码是修改自lwoopc,截取其中一部分,然后添加一部分。#include #include #define CLASS(type) \typedef struct type type; \type* type##_new( ); \void type##_ctor(type* t);
2013-09-22 14:15:01
1011
原创 基于6410的H264采集、硬编码、软解码的源代码解析
//这个是友善之臂专题8的源代码,不过没有注释,现在加上了注释,提供下载链接,也可以不下载,对照着这里看。因为这个过程包括采集、硬编码、软解码等过程,//调用的函数是规范的,所以不是用tiny6410的也可以看看,不是用ARM的也可以看看解码部分!//我只在tiny6410上尝试,但是因为这里涉及的都是lcd设备节点和摄像头设备节点,基于S3C6410的MFC,所以其他6410应该可以通用
2013-07-23 15:03:35
2499
2
原创 如何在Tiny6410上用EC189
为ARM添加配置文件:vi /etc/3g-modem/12d1.1505.ff输入以下内容,并保存,这个配置文件测试很多次才得到:DisableSwitching=0EnableLogging=0DefaultVendor= 0x12d1DefaultProduct= 0x1505MessageContent="5553424312345678000000000000
2013-07-14 16:20:09
736
原创 linux 驱动笔记 快速搜索
可以复制下来,用notepad++打开,整体很简洁的,然后可以用搜索方便查询!/* author:C雄 内容是关于linux2.6的 本文档是驱动基础相关的资料,不涉及具体硬件驱动(如LED、按键、等)。 2013.3.26*/头文件大全:{ 1. include/linux/list.h 精彩的双向链表数据结构
2013-05-03 13:52:55
948
1
原创 LED灯驱动程序tiny6410
这是一份tiny6410下的led驱动,为了解释详细,先不直接贴代码,代码tiny6410光盘有,而且本文也在最后贴出代码。写的动机:这是第一个也是最简单的硬件驱动程序了,而且开发板貌似也没有足够的注释。不涉及的知识点:驱动程序基础,混杂设备,这些不懂的话要自己查。驱动程序只有短短的10来行,并且注释和分析比较详细。/*这份代码在tiny6410光盘源代码lde
2013-02-21 17:02:48
1065
原创 shell最基础的笔记
注意:“=”左右两边都不能有空格,BASH中的语句结尾不需要分号程序1#!/bin/sh#echo somethingecho "hello world"echo "hello !!"cd /root/Desktopmkdir ./abc程序2,变量不需要类型,也不需要定义,使用的时候加上$,赋值的时候不用#!/
2013-01-29 20:07:05
319
原创 C语言调用终端命令行批处理【小尝试】
#include#include//用exce只能生成一个,然后退出,这不是我们想要的,所以用systemint main(int argc,char *argv[]){ int a=0,end; char buffer[100]; end=atoi(argv[1]);//第二个参数字符串转化为数字,表示要创建的文件数目 printf("form 0 to %d\n",end-1)
2012-12-14 20:14:04
836
atmega版本的ucosII
2013-10-08
基于Tiny6410的H264硬编码、软解码的源代码【有注释】
2013-07-23
基于30天自制操作系统的自制C语言图像界面
2013-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人