【经验交流】香瓜的个人代码规范

本篇博文最后修改时间:2016年12月23日,15:10。


一、简介

本文简要讲述香瓜编码的代码规范。


二、版权声明

博主:甜甜的大香瓜

声明:喝水不忘挖井人,转载请注明出处。

原文地址:http://blog.csdn.NET/feilusia

联系方式:897503845@qq.com

香瓜BLE之CC2541群:127442605

香瓜BLE之CC2640群:557278427

香瓜BLE之Android群:541462902

香瓜单片机之STM8/STM32群:164311667
甜甜的大香瓜的小店(淘宝店):https://shop217632629.taobao.com/?spm=2013.1.1000126.d21.hd2o8i

三、香瓜的代码规范
1、类型的宏替换
1)要求
要求用“#ifndef”判断是否之前被定义过。
2)举例
#ifndef GUA_U8      
typedef unsigned char GUA_U8;      
#endif      
    
#ifndef GUA_U16      
typedef unsigned short GUA_U16;      
#endif      
    
#ifndef GUA_U32      
typedef unsigned long GUA_U32;      
#endif  

2、宏定义
1)要求
①宏全为大写的英文字母。
②宏的名称应能读出其功能作用。
2)举例
#define GUA_RF_COMMUNICATION_JUDGMENT_FALSE     0  
#define GUA_RF_COMMUNICATION_JUDGMENT_TRUE      1

3、变量
1)要求
①变量名称前的字母含义要求如下
g:global全局。
a:array数组。
s:static静态。
c:const不变常数。
n:变量。
p:指针。
②变量的名称应能读出其功能作用。
2)举例
GUA_U8 gaGUA_USART1_rx_buf[GUA_USART1_RX_SIZE] = {0};	//全局数组
GUA_U8 gnGUA_USART1_rx_buf = 0;				//全局变量
GUA_U8 nGUA_USART1_rx_buf = 0;				//局部变量
static GUA_U8 snGUA_USART1_rx_buf = 0;			//静态变量
const static GUA_U8 csnGUA_USART1_rx_buf = 0;		//const类型的静态变量
GUA_U8 *gpGUA_USART1_rx_buf;			        //全局指针

3、if
1)要求
①“{”与“}”要对齐。
②if与else的上方要注释。
2)举例
//如果计数值大于10,则返回true
if(nGUA_Num > 10)
{
  return true;
}
//如果计数值小于10,则返回false
else 
{
  return false;
}

4、switch
1)要求
①switch、case、default上都要注释。
②每种情况的具体处理由“{}”包含。
2)举例
   //如果为0则关灯  
   switch(nbGUA_Char6[3])  
   {  
     //关灯  
     case 0x00:  
     {  
       P1_1 = 0;               //拉低P11       
       P1SEL &= ~(1 << 1);     //设置P11为IO口      
       P1DIR |= (1 << 1);      //设置P11为输出   
         
       break;  
     }  
  
     //开灯  
     case 0x01:  
     {  
       P1_1 = 1;               //拉高P11       
       P1SEL &= ~(1 << 1);     //设置P11为IO口      
       P1DIR |= (1 << 1);      //设置P11为输出   
         
       break;  
     }  
       
     //其它  
     default:break;  
   } 

5、文件注释
1)要求
至少要包含文件名称、文件作用说明、编码人、最后修改时间。
2)举例
①源文件
//******************************************************************************                              
//name:             GUA_RF_Communication.c                 
//introduce:        香瓜的通信协议          
//author:           甜甜的大香瓜                       
//email:            897503845@qq.com           
//QQ group          香瓜BLE之CC2541(127442605)                         
//changetime:       2016.12.08         
//******************************************************************************
②头文件
//******************************************************************************                              
//name:             GUA_RF_Communication.h                
//introduce:        香瓜的通信协议的头文件          
//author:           甜甜的大香瓜                       
//email:            897503845@qq.com           
//QQ group          香瓜BLE之CC2541(127442605)                         
//changetime:       2016.12.08         
//****************************************************************************** 

6、函数注释
1)要求
至少要包含函数名称、函数作用说明、形参含义、返回值含义、编码人、最后修改时间。
2)举例
//******************************************************************************                  
//name:             GUA_RF_Communication_Judgment                 
//introduce:        RF的通信数据判断              
//parameter:        npGUA_Receive: 接收缓冲区首地址         
//return:           true: 数据包正确  
//                  false: 数据包错误               
//author:           甜甜的大香瓜                       
//email:            897503845@qq.com           
//QQ group          香瓜BLE之CC2541(127442605)                        
//changetime:       2016.12.08                        
//******************************************************************************   
GUA_U8 GUA_RF_Communication_Judgment(GUA_U8 *npGUA_Receive)  
{
  ……
}







### TSLANet代码实现 TSLANet是一种专门用于特定应用场景下的网络架构,在VS Code环境中开发与此相关的项目可以利用其强大的编辑功能并结合Keil进行编译和下载操作[^1]。 对于TSLANet的具体实现,通常会涉及到以下几个方面: #### 数据预处理模块 数据准备阶段至关重要。这一步骤负责读取原始输入文件,并将其转换成适合模型训练的形式。 ```python import numpy as np def preprocess_data(input_file_path): raw_data = load_raw_data(input_file_path) # 加载未加工的数据集 processed_data = normalize(raw_data) # 归一化处理 return split_train_test(processed_data) # 切分训练集测试集 ``` #### 构建神经网络结构 定义TSLANet的核心部分——即设计合适的层组合来构建整个网络框架。 ```python from tensorflow.keras.models import Model from tensorflow.keras.layers import Input, Dense, Conv2D, Flatten def build_model(): inputs = Input(shape=(input_shape)) x = Conv2D(32, kernel_size=3, activation='relu')(inputs) x = Conv2D(64, kernel_size=3, activation='relu')(x) x = Flatten()(x) outputs = Dense(num_classes, activation='softmax')(x) model = Model(inputs=inputs, outputs=outputs) model.compile(optimizer='adam', loss='categorical_crossentropy') return model ``` #### 训练过程管理 编写脚本来控制如何以及何时保存最佳权重参数等重要事项。 ```python from tensorflow.keras.callbacks import ModelCheckpoint checkpoint_callback = ModelCheckpoint( filepath='./best_weights.hdf5', save_best_only=True, monitor='val_accuracy' ) history = model.fit(train_x, train_y, validation_split=0.2, epochs=num_epochs, callbacks=[checkpoint_callback]) ``` 上述代码片段展示了基于TensorFlow/Keras库的一个简化版TSLANet实现方式。实际应用中可能还需要考虑更多细节优化问题,比如调整超参数设置、引入正则项防止过拟合等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甜甜的大香瓜

谢谢你的支持^_^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值