struct
{
unsigned char TYPE; //类型
unsigned char SN;
unsigned char MD; //命令
unsigned char CM;
unsigned char P1;
unsigned char P2;
unsigned char P3;
unsigned char P4;
unsigned char P5;
unsigned char CK1;
unsigned char CK2;
unsigned char Start;
unsigned char End;
unsigned char length; //一个帧的基本长度
}REV;
struct
{
unsigned char TYPE //=ArmComModule.REV.BUFFER[] 类型
unsigned char SN;
unsigned char MD;
unsigned char CM;
unsigned char P1;
unsigned char P2;
unsigned char P3;
unsigned char P4;
unsigned char P5;
unsigned char CK1;
unsigned char CK2;
unsigned char Start;
unsigned char End;
unsigned char length; //一个帧的基本长度
}SEND;
struct Communicatemodule
{
unsigned char RevBuffSize; //接收缓冲区大小
unsigned char SendBuffSize; //发送缓冲区大小
unsigned char *PushData; //定义指向char的地址PushData
unsigned char RevBuf[RevBuffSize]; //串口接受缓冲区
unsigned char TraBuf[SendBuffSize]; //串口发送缓冲区
unsigned char RxdCnt; //串口接受字节个数计数器
unsigned char TxdCnt; //串口发送字节个数计数器
unsigned char sendptr //发送指针
unsigned char RevFlag; //通讯响应 作为从机的通信处理标识
unsigned char SendFlag; //发送标识
unsigned char wptr; //写指针
unsigned char rptr; //读取指针
unsigned char overflow; //定义溢出
SEND; //发送结构体
REV; //接收结构体
void (*send)(unsigned char l,unsigned int point,unsigned char whichone); //发送函数
void (*selfcheck)(void); //通信模块自检测
}Arm,DRIVER,CAN;
struct
{
ARM;
DRIVER;
CAN;
}COMM
到时候我要修改比较方便比如,我要把can的数据头都改下,只要COMM.CAN.REV.START= 什么就行了。你们觉得怎么样这样?
|