行行行,走走走,来到老爷的大门口,忙叫衙役来堵狗,我要告知自己以前的代码写的太烂了,希望老爷警告,以后写的好点。
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~
晚安、好梦!
用户1790382 2016-3-16 14:41
saj 2015-8-17 16:37
自做自受 2015-8-17 11:39
用户1504253 2015-7-31 10:07
用户377235 2015-7-26 07:38
用户430486 2015-7-20 16:13
东莞元宝代理Microchip长电二三极管 2015-7-17 15:37
用户1774716 2015-7-16 17:22
用户377235 2015-7-16 15:03
用户1275579 2015-7-16 13:37