当前位置: 首页 > news >正文

LFD STM32编程规范20241111

  • 1. 源文件和头文件放同一目录bsp文件夹
  • 顺序
  • 文件注释
  • 防重复设置
  • #include
  • #define
  • enum
  • 类型声明、定义 包括struct union typedef
  • 全局变量声明
  • 文件级变量声明
  • 全局或文件级函数声明
  • 函数实现。按函数声明顺序
  • 文件尾注释。/**************END FILE**************/
  • 引用头文件不用绝对路径
  • 头文件只存放声明,不存放定义,避免重复。
  • 缩进4
  • 变量与语句空一行
  • 不同功能空一行
  • 长表达式换行书写

if((ucParam1 ==0) && (ucParam2 ==0) 

||(ucParam==0)) 

{

}

  • = 、+= 、+ 、%、 &&、& 、<<、^加空格

!、~、++、--、-> . 不加空格

函数名命规则

前缀模块明、模块名小写,与函数名区分。

uartReceive();

函数形参已下划线开头,与普通变量区分。

uint32_t uartConvUartBaud(uint32_t _ulBaud)

一个函数实现一个功能。

函数名准确描述,避免无意义,含义混淆的命名。

检查函数输入有效性 assert()验证。

防止函数参数作为工作变量。

避免五个参数函数。不用的去掉。

不使用技巧语句

变量命名

uint8_t ==>uc   ucSum

uint16_t ==> us  usParaWord

uint32_t ==>ul ulParaWord

int8_t ==>c   cSum

int16_t ==> s  sParaWord

int32_t ==>l lParaWord

int8_t * ==>cp   cpWrite

int16_t * ==>sp spWrite

int32_t * ==>lp slWrite

int8_t 数组 ca  caNum[3]

int16_t 数组 sa saNum[3]

int32_t 数组 la laNum[3]

结构体 t tParam

uint8_t * ==>ucp   ucpWrite

uint16_t * ==>usp uspWrite

uint32_t * ==>ulp uslWrite

uint8_t 数组 uca  ucaNum[3]

uint16_t 数组 usa usaNum[3]

uint32_t 数组 ula ulaNum[3]

变量名作用域。

在变量类型前缀加变量作用域

  • 全局变量 +g

uint32_t g_ulParaWord

uint8_t g_ucByte

  • 静态变量+s

static uint32_t s_ulPara

函数内部局部变量不加作用域前缀

结构体命名 tag开头,之后首字母大写。结尾以_T标识。单词间不用下划线分开

typedef struct tagBillQuery_T

{

}BillQuery_T;

结构体变量定义

BillQuery_T tBillQuery

枚举定义全部采用大写,结尾_E标识,

typedef enum

{

        F1=0,

        F2,

        F3

}KEY_CODE_E

宏定义多个单词用_分开,并注释。

#define LOG_BUF_SIZE 8000

http://www.lryc.cn/news/484854.html

相关文章:

  • Python学习------第八天
  • 【扩散——BFS】
  • C++ 编程基础(5)类与对象 | 5.5、多态
  • 客户端发送http请求进行流量控制
  • STM32 低功耗模式详解
  • 我的第一个PyQt5程序
  • Unity调用Python
  • 前端,location.reload刷新页面
  • 5G的发展演进
  • 数据库参数备份
  • PG数据库 数据库时间字段 开始时间和结束时间,判断和查询条件的开始和截止时间存在交集,SQL如何编写
  • k8s服务内容滚动升级以及常用命令介绍
  • 机器学习: LightGBM模型(优化版)——高效且强大的树形模型
  • Wordpress常用配置,包括看板娘跨域等
  • Python学习从0到1 day27 Python 高阶技巧 ③ 设计模式 — 单例模式
  • Unity 网格模型及优化
  • 离线 快速搭建 docker docker-compose k8s 环境
  • Excel根据条件动态索引单元格范围
  • 【计算机网络五】HTTP协议!网站运行的奥秘!
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-Qwen-Agent深入学习(四)
  • stream学习
  • 【数据结构】实验二 单链表的基本操作
  • SQL 分组查询中的非聚合列要求及实例解析
  • Unity中实现战斗帧同步的高级技术
  • Qt 正则表达式提取文件中的 USB 设备 ID
  • 使用 Python 和 OpenCV 实现摄像头人脸检测并截图
  • 【二叉搜素树】——LeetCode二叉树问题集锦:6个实用题目和解题思路
  • 【计算机视觉】FusionGAN
  • 问:SQL优化,七条实践总结?
  • unity单例模式的不同声明(待完善