⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 define.h

📁 使用MC9S12DP256写的CAN转串口程序。
💻 H
字号:
//发送帧信息格式定义
typedef  struct  _SendFrame_OBJ
{
	uchar   RemoteFlag;         //远程帧标志
	uchar   ExternFlag;         //扩展帧标志
	ulong   ID;                 //标识符
	uchar   Priority;           //优先级 
	uchar   DataLen;            //数据长度
	uchar   Data[8];            //数据域
}SendFrame_OBJ,*PSendFrame_OBJ;
SendFrame_OBJ   SendFrame;
SendFrame_OBJ   SendQue[20];            //发送帧信息存储结构数组

//接收帧信息格式定义
typedef  struct  _RecvFrame_OBJ
{
	uchar   RemoteFlag;         //远程帧标志
	uchar   ExternFlag;         //扩展帧标志
	ulong   ID;                 //标识符
	ulong   PGN;                //参数组编号
	uchar   P;                  //优先权
	uchar   R;                  //保留位
	uchar   DP;                 //数据页
	uchar   PF;                 //PDU格式
	uchar   PS;                 //PDU特定域
	uchar   SA;                 //源地址
	ulong   TimeStamp;          //时间戳
	uchar   TimeFlag;           //时间标志
	uchar   DataLen;            //数据长度
	uchar   Data[8];            //数据域	
}RecvFrame_OBJ,*PRecvFrame_OBJ;
RecvFrame_OBJ   RecvFrame;

//接收报文信息格式定义	
typedef   struct  _Message_OBJ
{
	ulong   RecvNum;            //序号
	ulong   PGN;                //参数组标码
	uchar   Type;               //报文类型
	ulong   REQ_PGN;            //请求PGN
	ulong   ACK_PGN;            //应答PGN
	uchar   ParaAmount;         //参数个数
	long            ParaData[8];        //参数值
	float           VerData[8];         //参数真值
}Message_OBJ,*PMessage_OBJ;
Message_OBJ	RecvMessage;


//实时中断使用变量
static long     absoluteTime = 0;       //实时中断计数器
static long     lastTime = 0;           //上一时刻实时中断计数器

//发送中断使用变量
ulong   SendCount = 0;          //发送计数器
uchar   SendOver = 1;           //发送结束标志
ulong   SendQueNum = 0;         //发送队列序号

//接收中断历程使用变量
ulong   RecvCount = 0;          //接收计数器
uchar   Recv_BitNum = 0;        //接收中断位计数器
uchar   Recv_PGNNum = 0;        //接收中断PGN
uchar   Recv_ByteNum = 0;
uchar   Recv_ParaNum = 0;
uchar   Recv_LengthNum = 0;
uchar   m_bSuccess = 0;
uchar   m_bDadaFrame = 1;
float	Recv_Resolution = 0;
float	Recv_VData = 0;
float	Recv_Temp = 0;
ulong   Recv_Temp2 = 0;;
ulong   Recv_Temp3 = 0;
ulong   Recv_Temp4 = 0;
ulong   Recv_Temp5 = 0;
ulong   Recv_Temp6 = 0;


void Delay(ulong time)
{
	while(time--);
}

//定义CAN信息帧的数据类型。
typedef  struct  _ASCL_CAN_OBJ{
	ulong	ID;
	uchar	RemoteFlag;//是否是远程帧
	uchar	ExternFlag;//是否是扩展帧
	uchar	DataLen;
	uchar	Data[8];
	uchar	frame_status_OBJ;
}ASCL_CAN_OBJ;

ASCL_CAN_OBJ Recv_Frame[16];
uint frame_status = 0x0;
uchar Recv_buffer_overflow = 0;
uchar SCI_CMD = 0;
uchar RX_OK = 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -