热度 18
2013-6-3 16:58
1725 次阅读|
3 个评论
行行行,走走走,来到老爷的大门口,忙叫衙役来堵狗,我要告知自己以前的代码写的太烂了,希望老爷警告,以后写的好点。 1# 不要乱用goto. 前些天,买了一个GSM模块,来带了一个原代码,打开看了看,想好好学学,可是发现,满篇都是goto语句,最后自己翻着看了看C语言方面的书,发现并不提倡使用goto。引用《硬件工程师的10个C语言技巧》中的一句话: 只要看到或想到goto语句,就会让软件工程师退缩,产生本能的厌恶。其中一个主要的原因是,一个遍布goto语句的程序会让让人很难抓住重心,不便于对程序的理解和维护。 2# 对变量的命名、函数的命名要规范 以前,自己的变量,不是i 就是j,对函数的命名,不是cs(测速)、就是ys(延时),要是自己,估计早上写了,下午去看上一半个小时,运气好点就看来了,要是以后别人想运用,或者说要让别人维护一下,我想维护的人一看都想吐,别说维护了。 3# 请用模块化编程 说到模块化编程,不是将各个函数简单打包到xx.h中,那不是模块化编程,模块化编程必须一个xx.c一个xx.h,xx.c里面包括底层原驱动代码,也就是各个函数;xx.h主要是提供函数接口,方便使用者调用。 4# 错误不要以为肯定技术问题 自己大小大小的代码,已编译有错,首先就会想是不是哪儿不会写错了,总感觉自己理直气壮地,最后仔细一查,好多时候问题都是处在: 忘了逗号(,)忘了分号(;)忘了括号(()),或者是因为机械式的复制所致,说的好听点:粗心(呵呵),说白了就是习惯不好,不注意细节,最后导致这样、那样的问题,做个细心、又准备之人吧,*^_^* 最后附上自己代码,望大侠批评指教、或者大力拍砖。 /* ********************************************************************************************* */ // 工程简介:麦光开发板全板测试程序 // File name: eeprom.h // Project : // Processor: STC89C52RC // Compiler : Keil4 C51 Compiler // SysCLK : 11.0592MHZ // Author : Avlin // Version: 1.0 // Create Date : 2013-06-02 星期六 // Amend Date : // Description: 本文件是eeprom硬件驱动程序头文件; /* ********************************************************************************************* */ #ifndef __EEPROM_H__ #define __EEPROM_H__ #include #include "common.h" #include "IIC.h" #define AT24C02DevIDAddr 0xa0 /* ========================================================================================= */ // 函数声明 /* ************************************************************************* */ /* Runction: 写AT24C02任意寄存器值; /* Input: addr,AT24C02寄存器地址;val,要写入AT24C02寄存器的数据; /* Output: none; /* ************************************************************************* */ void AT24C02_WriteReg(uChar8 addr, uChar8 val); /* ************************************************************************* */ /* Function: 读AT24C02任意寄存器值; /* Input: addr,AT24C02寄存器地址; /* Output: none; /* ************************************************************************* */ uChar8 AT24C02_ReadReg(uChar8 addr); /* ========================================================================================= */ #endif /* ********************************************************************************************* */ // 工程简介:麦光开发板全板测试程序 // File name: eeprom.c // Project : // Processor: STC89C52RC // Compiler : Keil4 C51 Compiler // SysCLK : 11.0592MHZ // Author : Avlin // Version: 1.0 // Create Date : 2013-06-02 星期日 // Amend Date : // Description: 本文件是eeprom硬件驱动程序; /* ********************************************************************************************* */ #include "eeprom.h" /* ************************************************************************* */ /* Runction: 写AT24C02任意寄存器值; /* Input: addr,AT24C02寄存器地址;val,要写入AT24C02寄存器的数据; /* Output: none; /* ************************************************************************* */ void AT24C02_WriteReg(uChar8 addr, uChar8 val) { IIC_WrDatToAdd(AT24C02DevIDAddr, addr, val, 1); } /* ************************************************************************* */ /* Function: 读AT24C02任意寄存器值; /* Input: addr,AT24C02寄存器地址; /* Output: none; /* ************************************************************************* */ uChar8 AT24C02_ReadReg(uChar8 addr) { uChar8 val; IIC_RdDatFromAdd(AT24C02DevIDAddr, addr, val, 1); return val; } 若想看IIC_RdDatFromAdd()、IIC_WrDatToAdd函数的具体,可以向笔者留言,无偿提供,O(∩_∩)O~ 晚安、好梦!