嵌入式C语言自定义标准
文件夹架构:
-
nano版本:
┖ Project
……
┖ Code
userMain.c
userConfig.h
modEc20.c
modEc20.h
……
┖ Lib
userFrame.lib
userFrame.h
……
┖ Doc
readMe -
标准版本:
┖ Project
……
┖ User
┖ userMain
userMain.c
userConfig.h
┖ userHandle
userHandle.c
userHandle.h
……
┖ App
┖ appRemote
AppRemote.c
AppRemote.h
……
┖ Module
┖ modEc20
modEc20.lib
modEc20.h
┖ modW5500
modW5500.c
modW5500.h
……
┖ Driver
┖ drvGpio
drvGpio.c
drvGpio.h
……
┖ Libraries
固件库
┖ Doc
readMe
文件内容详解:
- Project:包含所有工程文件、可执行bin、hex等等;
- App:包含appRemote(通信类)、appState(状态检测类)、appParam(参数类)、appAction(动作类)、appDisplay(显示类);
- Module:包含所有模块的驱动程序;
- Driver:包含所有和MCU相关的接口驱动程序;
- Doc:包含文件版本记录,工程文档引导;
对象构建:
typedef strcut{
void (*Init)(); //该对象的操作函数
……
uint32_t State; //该对象的状态变量
……
}APPSTATE_StructTypeDef;
APPSTATE_StructTypeDef appState = {
.Init = function1,
……
.State = 0,
……
};
变量
函数内部:
static类:s_<变量类型 例:u8 u16 u32 i8 i16 i32><序号 例:0 1 2>tmp;
auto类:a<变量类型 例:u8 u16 u32 i8 i16 i32><序号 例:0 1 2>tmp;
函数外部:
建立在结构体内部 例:appState.State;
其他:由于指针的存在,需要特别处理,指针增加p,例:s_u8_p_0_tmp,appState.p_State;
宏定义
全部大写
#define <文件名>_<变量名> <被定义内容>