欢迎来到单片机编程规范指南。本指南旨在帮助开发者编写高质量、易于维护的代码,特别是在大型项目中。我们将从模块化编程的最佳实践开始,逐步深入到文件和函数注释、代码风格、命名约定等方面,以确保代码的可读性、可维护性和重用性。

 1. 模块化编程的最佳实践和文件结构

         文件结构
        - **主程序文件**:通常命名为 `main.c`,负责程序的主逻辑和初始化。
        - **模块文件**:每个功能模块一个文件,例如 `TemperatureSensor.c`、`LCD.c` 等。
        - **头文件**:每个模块对应的头文件,例如 `TemperatureSensor.h`、`LCD.h` 等,用于声明模块的接口。

        最佳实践
        - **功能单一**:每个模块只负责一个功能,避免功能重叠。
        - **低耦合高内聚**:模块间的耦合度应尽可能低,内聚度应尽可能高。
        - **可重用性**:设计模块时考虑其在其他项目中的重用性。

        2. 文件和函数注释规范

         文件注释
        - **主程序注释模板**:
  //********************************************************************
  //*  文件名:test init.c
  //*  文件描述:PIC16f887,端口配置单路AD取样显示测试程序,0通道输入
  //*   编译环境: windows xp +maplab ide 8.83 +picc 9.60
  //*   编程者: bianjingyuan
  //*   编程日期: 2024-10-30
  //*  版本号:1.0
  //*  修改记录:
  //   硬件资源分配表:
  //       din      RD5
  //*******************************************************************
        - **模块注释模板**:
  /*********************************************************************/
  /*模块名称: TemperatureSensor.c                                         */
  /*模 块 名:        LCD 模块              LCD 型号:HD44780          */
  /*创 建 人:bianjingyuan                  日期:2020-10-08           */
  /*修 改 人:                              日期:2020-10-08           */
  /*功能描述:                                                         */
  /*编译环境:maplab ide 8.83 +picc 9.60 +proteus 7.10 sp0             */
  /*版    本:                             */
  /*********************************************************************/
        - **函数注释模板**:
  /*********************************************************************
  *
  * 函 数 名: v_LcdInit
  * 功能描述: LCD初始化
  * 函数说明: 初始化命令:0x3c, 0x08, 0x01, 0x06, 0x10, 0x0c
  * 调用函数: v_Delaymsec(),v_LcdCmd()
  * 全局变量:
  * 输    入: 无
  * 返    回: 无
  * 设 计 者:bianjingyuan                         日期:2020-10-08
  * 修 改 者:bianjingyuan                         日期:2020-10-08
  * 版    本:
  ***********************************************************************/
        

         3. 代码风格

         缩进和对齐
        - **缩进**:使用 Tab 作为缩进单位,一个 Tab 为四个空格大小。
        - **对齐**:预处理语句、全局数据、函数原型、标题、附加说明、函数说明、标号等均顶格书写。语句块的 `{}` 配对对齐,并与其前一行对齐。

        语句结构
        for(i=0; i<100; i++)
        {
            fun1();
            fun2();
        }
 

        4. 命名约定

         常量命名
        - 全部用大写字母,例如:
          #define PI 3.14159
  ```

        变量命名
        - 变量名加前缀,前缀反映变量的数据类型,用小写,反映变量意义的第一个字母大写,其他小写。
        - 变量数据类型前缀:
          - `unsigned char` 前缀 `uc`
          - `signed char` 前缀 `sc`
          - `unsigned int` 前缀 `ui`
          - `signed int` 前缀 `si`
          - `unsigned long` 前缀 `ul`
          - `signed long` 前缀 `sl`
          - `bit` 前缀 `b`
          - 指针 前缀 `p`

         函数命名
        - 函数名首字大写,若包含有两个单词的每个单词首字母大写。

         5. 实际代码示例

以下是一段示例代码,展示如何应用上述规范:

//*******************************************************************
//*  文件名:main.c
//*  文件描述:主程序文件,负责初始化和主循环
//*   编译环境: windows xp +maplab ide 8.83 +picc 9.60
//*   编程者: bianjingyuan
//*   编程日期: 2024-10-30
//*  版本号:1.0
//*  修改记录:
//*******************************************************************

#include "TemperatureSensor.h"
#include "LCD.h"

void main(void)
{
    v_TemperatureSensorInit();
    v_LcdInit();

    while(1)
    {
        // 主循环
        v_TemperatureSensorRead();
        v_LcdDisplay();
    }
}

void v_TemperatureSensorInit(void) // 温度传感器初始化
{
    // 初始化代码
}

void v_LcdInit(void) // LCD初始化
{
    // 初始化命令:0x3c, 0x08, 0x01, 0x06, 0x10, 0x0c
}
```

        通过遵循这些规范,你可以提高代码的质量和开发效率。希望这份指南对你有所帮助。如果你有任何疑问或需要进一步的指导,请随时联系。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部