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

📄 netcom.h

📁 移植到51单片机的UIP代码
💻 H
字号:
#ifndef NETCOM_H
#define NETCOM_H

extern void uip_appcall( void );
extern void NetcomInit( void );
extern void ComInit( void );
#ifndef UIP_APPCALL
#define UIP_APPCALL		uip_appcall
#endif

#define bool unsigned char
#define u8  unsigned char
#define u16 unsigned int
#define u32 unsigned long

#ifndef UIP_APPSTATE_SIZE
#define UIP_APPSTATE_SIZE (1500)
#endif

#define MODE_UDP			1
#define MODE_TCP_CLIENT		2
#define MODE_TCP_SERVER		3

#define VERY_NONE       0
#define VERY_EVEN       1
#define VERY_ODD        2
#define VERY_LOW        3
#define VERY_HIGH       4

#define SENDBUF_LEN 1460
#define RECVBUF_LEN	1460

#define T1_RELOAD	0xf8cc

typedef struct
{
	u8 SendBuf[SENDBUF_LEN];
	u16 SendPtr;
	u16 SendLen;
	bool SendFlag;
	
	u8 RecvBuf[RECVBUF_LEN];
	u16 RecvPtr;
	u16 RecvLen;
	bool RecvFlag;
	bool Com2NetFlag;
	bool RstRecvFlag;

	u8 RecvTime;
}COM_BUF;

typedef struct
{
	u8 LocalIP[4];	//本地IP
	u8 GateWay[4];	//网关
	u8 NetMask[4];	//子网掩码
	u8 MacAddr[6];	//物理地址
	u8 GetIPMode;	//获取IP的方式

	u8 WorkMode;	//工作方式
	u8 TargetIP[4];	//目标IP
	u16 LocalPort;	//本地UDP端口
	u16 TargetPort;	//目标UDP端口
	
	u32 BaudRate;	//串行通讯波特率
	u8 VerifyBit;	//校验位
	u8 DataBit;		//数据位数
	u8 StopBit;		//停止位数
	u8 FrameTime;	//作为不同帧之间的识别时间
	
	u16 CrcVerify;	//CRC校验字节
}PARA_SET;

typedef struct
{
	union
	{
		u32 a;
		struct
		{
			union
			{
				u16 b;
				struct
				{
					u8 CL:8;
					u8 CH:8;
				}CHAR;
			}IL;
			union
			{
				u16 c;
				struct
				{
					u8 CL:8;
					u8 CH:8;
				}CHAR;
			}IH;
		}L2I;
	}L;
}PC2MCU51;

typedef struct
{
	union
	{
		u16 a;
		struct
		{
			u8 CL:8;
			u8 CH:8;
		}CHAR;
	}I;
}SWAP_INT;

extern PARA_SET ParaSet;

extern void ComTask( void );
extern void TcpTask( void );
extern bit WriteSendBuf( u8 *ptr, u16 len );

#endif

⌨️ 快捷键说明

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