
简单资料
phiex
这个作者很懒,什么都没留下…
展开
-
define的用法(含少见的用法)
1.简单的define定义#define MAXTIME 1000 一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写if(i编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是简单的文本替换,而不是作为一个量来使用,这个问题在下面反映的尤为突出。2.define的“函数定义”define可以像函数那样接受一些参数,如下2.1 普通固定个数参数#define max(x,y) (x)>(转载 2010-09-18 11:32:00 · 7286 阅读 · 0 评论 -
SD卡初始化及读写流程
<br /><br />SD卡调试关键点:<br /> <br />1. 上电时要延时足够长的时间给SD卡一个准备过程,在我的程序里是5秒,根据不同的卡设置不同的延时时间。SD卡初始化第一步在发送CMD命令之前,在片选有效的情况下首先要发送至少74个时钟,否则将有可能出现SD卡不能初始化的问题。<br /> <br />2. SD卡发送复位命令CMD0后,要发送版本查询命令CMD8,返回状态一般分两种,若返回0x01表示此SD卡接受CMD8,也就是说此SD卡支持版本2;若返回0x05则表转载 2010-09-18 16:21:00 · 875 阅读 · 0 评论 -
C语言宏定义##连接符和#符的使用
<br />C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。 关于#和##<br />在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏: #define WARN_IF(EXP) do{ if (EXP) fprintf(stderr, "Warning: " #EXP转载 2010-09-18 11:28:00 · 383 阅读 · 0 评论 -
NAND FLASH ECC校验原理与实现
ECC简介 由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块。为了检测数据的可靠性,在应用NAND Flash的系统中一般都会采用一定的坏区管理策略,而管理坏区的前提是能比较可靠的进行坏区检测。 如果操作时序和电路稳定性不存在问题的话,NAND Flash出错的时候一般不会造成整个Block或是Page不能读取或是全部出错,而是整个Page(例如512Bytes)中只有一个或几个bit出错。 对数据的校转载 2010-09-18 16:10:00 · 495 阅读 · 0 评论 -
SD管脚和应答数据格式
R1 定义:(一个字节)处于静止状态 - 这个卡正在执行初始化处理,处于静止状态。擦除复位 - 由于一条擦除序列之处的命令被确认,导致擦除序列在执行操作之前被清除。非法命令 - 发现了非法的命令代码。通信CRC错误- 最后一条命令的CRC检查发现错误。擦除序列错误 - 在一个擦除的序列里出现错误。地址错误 - 不正确的地址,命令里的地址和块长度无法相匹配。参数错误 - 命令里的参数(例如:地址、块长度)不在该卡所允许的范围内。R1b 定义:(一个字节)与R1相同,只多转载 2010-09-18 16:29:00 · 1104 阅读 · 0 评论 -
#define、const、typedef的差别
<br /><br />原文链接:http://leader20.blog.163.com/blog/static/6198612007429818287/<br />#define 并不是定义变量, 只是用来做文本替换<br />例如:<br />#define PI 3.1415926<br />float angel;<br />angel=30*PI/180;<br />那么,当程序进行编译的时候,编译器会首先将 “#define PI 3.1415926”以后的,所有代码中的“Pi”全部换成转载 2010-09-18 11:05:00 · 386 阅读 · 0 评论 -
POWERPCB常用快捷键和一些技巧
<br />1.移动元件时可按TAB键翻转。<br />2.加任何形状的孔(包括方形元件脚):可在24层用二维线画。<br />3.加裸铜(即阻焊,在加大导通电流和增加焊接附着力时经常用到)用铺铜功能在28层加。<br />4.把当前PCB板用到的元件封装存入自已的库:圈住所有元件按右键选SAVE TO LIB...,再选所需的库即可.(把别人的库占为已有算是不费吹灰之力)<br />5.在POWERPCB把二维线图形存入库:先用二维线功能画好所需的图形(可加上文字)把它们全部圈住按右键选SAVE TO L转载 2010-09-18 16:20:00 · 887 阅读 · 0 评论 -
简单的RS232C/TTL电平转换和串口取电
<br />在许多单片机的应用中都会使用到串行口与电脑的串行口相连接,进行数据的传输或控制命令的发送与接收。单片机的串口有很大一部分是使用TTL电平标准的(PIC的可以直接连接在电脑串口),它的逻辑1电平是5V,逻辑0电平是0V,而电脑串行口所使用的是RS232C的电平标准,它的逻辑1电平是-3V--12V,逻辑0电平是+3V-+12V。两者的电平范围相差很远,所以连接时需要用到电平转换电路。这样电路有好多种,一般来说商业化的成品会用到MAX232,DS275等专用的RS232、TTL电平转换集成电路,对于转载 2010-09-18 16:45:00 · 6128 阅读 · 0 评论 -
POWERPCB常用快捷键和一些技巧
<br />1.移动元件时可按TAB键翻转。<br />2.加任何形状的孔(包括方形元件脚):可在24层用二维线画。<br />3.加裸铜(即阻焊,在加大导通电流和增加焊接附着力时经常用到)用铺铜功能在28层加。<br />4.把当前PCB板用到的元件封装存入自已的库:圈住所有元件按右键选SAVE TO LIB...,再选所需的库即可.(把别人的库占为已有算是不费吹灰之力)<br />5.在POWERPCB把二维线图形存入库:先用二维线功能画好所需的图形(可加上文字)把它们全部圈住按右键选SAVE TO L转载 2010-09-18 16:19:00 · 634 阅读 · 0 评论