- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
msp430单片机编程要点
单片机C编程规范
【规则1】各个模块分别放到私有的文件夹,每个模块有自己的.C和.H文件
【规则2】工程中只有一个main.c文件,其中包含主函数
【规则3】声明的变量都放在.H文件之中
【规则4】头文件用
#ifndef _FILENAME_H_
#define _FILENAME_H_
//Extern int doSomething();
#endif
声明,防止头文件被重复利用。.C文件包含各自的头文件。
【规则5】工程中包含一个project_cfg.h文件,用来存放系统的配置。
#ifndef _PROJECT_CFG_H_
#define _PROJECT_CFG_H_
typedef unsigned char U8;
typedef char S8;
typedef unsigned int U16;
typedef int S16;
typedef unsigned long U32;
typedef long S32;
#endif
【规则6】用typedef声明类型
Typedef unsigned char U8
Typedef char S8
Typedef unsigned int U32
Typedef int S32
Typedef unsigned short U16
Typedef short S16
Static U8 s_ucName; //静态的
U8 g_ucName; //全局的
【规则7】变量的定义与使用,变量的定义应该有可读性。
U8 ucRet;
U32 uiRet;
Bit DoSomething(S32 siVal)
【规则8】用Tab 进行排版,所有不相关的语句都用空一行。
【规则9】函数的使用。函数名的定义要有可读性,似动宾结构。最好用get、set
U32 GetUart(); //动宾的首字母都要大写
U32 SetUart();
【规则10】源文件中开头,和函数之前都要写注释。重要的代码要用 // 来注释
/*
*函数功能:配置串口参数
*入口参数:ncom串口号、波特率、校验
*返回参数:0 成功 -1失败
*描述:
*/
【规则11】分支语句,都要以default结尾。特殊的需说明。
Switch(a)
{
case 1: break;
case 2: break;
case 3: break;
case 4: break;
default: break;
}
【规则12】区分strcpy与memcpy
【规则13】开辟字符串空间的时候要+1
Char scBuf[Len+1];
【规则14】所有的变量、指针使用前都要初始化,检查合法性。
【规则15】程序中加入挑错检错的预言accert、try-----catch
【规则16】做一套调试分析函数,有利于系统调试。
【规则17】注意数组越界、宏定义越界
【规则18】慎重使用库函数malloc、new。
Char *pc=(char *)malloc(100);
Free(pc); //释放空间
Pc=NULL; //防止产生野指针。
【规则19】结构体、枚举、共同体声明格式.
Typedef struct _COM_ST_
{
U32 uiA;
U32 uiB;
} COM_ST;
Typdef enum _COM_ST_
{
U32 uiA;
U32 uiB;
} COM_ST;
【规则20】多使用enum提高程序的健壮性、可读性。多使用union节省空间
【规则21】会使用goto语句
【规则22】避免多个功能在一个函数完成,一个函数只完成一个功能。每个函数必须考虑了留有足够的接口供其他人员使用。
【规则23】时间准确性要求较高的代码要嵌入汇编。
【规则24】一行只能放一条语句,不能放置多条。
【规则25】对于赋值语句,等号和数值保持垂直对齐。
DispSegTblIx = 0;
DispDigMsk = 0x80;
DispScale = 1.25;
【规则26】所有的逻辑括号要对齐,只能是
If(1)
{
}
Else
{
}
不能是
If(1){
}else{
}
【规则27】块代码注释使用#if 0 #endif
【规则28】局部变量与全局变量不能同名
【规则29】所有的函数返
文档评论(0)