嵌入式软件开发编程习惯之命名规范
命名规范
可以将代码内容分为3层,应用层、硬件抽象层、硬件层。对应的命名可以分为硬件层Bsp_…,硬件抽象层为Hal_…,应用层可以不加前缀。
如图:
编程文件的分类
良好的文件命名和分类习惯可以减少开发过程中不必要的麻烦,可以将强相关的文件放到同一个文件夹中。
如图
一般来说,和硬件直接相关的代码的可以归类为硬件层,比如硬件初始化代码,对硬件操作的代码。而硬件抽象层的作用是将应用层和硬件层隔离,避免硬件层直接调用硬件层的函数。这样的作用是在更换硬件引脚的时候,只需要对硬件层的代码进行修改,而不会影响到整个过程的代码。
代码注释
提供一个代码模板.c
/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* 文件名 :
* 作者 :
* 版本 :V1
* 时间 :
* 简要 :
********************************************************************
*
*
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
/* 头文件 ----------------------------------------------------------------*/
#include "xx.h"
/* 函数 ------------------------------------------------------------------*/
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 函数名:
* 参数:
* 返回:
* 描述:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
.h
/*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
* 文件名 :
* 作者 :
* 版本 : V1
* 时间 :
* 简要 :
********************************************************************
*
*
*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
#ifndef _H //此处需要根据实际更改,例如 __BSP_LED_H
#define _H //和上一行一样
/* 头文件 ----------------------------------------------------------------*/
#include <stm32f10x.h>
/* 宏定义 ----------------------------------------------------------------*/
/* 结构体或枚举 ----------------------------------------------------------*/
/* 函数声明---------------------------------------------------------------*/
/* 外部变量引用 ----------------------------------------------------------*/
#endif