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

📄 mytcpip.c

📁 S3C2440驱动DM9000A的裸机程序
💻 C
字号:
#include "MyLib.h"

extern U8 work[2][12];
extern void Shut_down_form(void);

U8  rbuf[2000];
U32 rlen,netlock;//netlock初始化为0,在Arp_init();
U32 gSendUDP;//arp.c init
U16 gUDP_counter, gUDP_Port, gIP_ident;
U8  gMyIP[4];
U8  gMyPhy[8];
U8  gMyDestIP[4];
U8  disable_shotdown;
struct _CONN conn[MAX_CONN+1];
void Tcpip_check(void)
{
	U16 dat;
	//U32 i;
    disable_shotdown=0;
	while((rlen=DM9000_RecvBuf(rbuf))!=0){// 接收到有效的网卡数据//返回实际收到的数据长度
	//if((rlen=DM9000_RecvBuf((U32 *)rbuf))!=0){
		dat=rbuf[0x0c]+rbuf[0x0d]*0x100;	
		if(dat==ARP_PACKET)
			Arp_receive(rbuf);
		else if(dat==IP_PACKET)
			IP_receive(rbuf, rlen);
	}
	if(netlock){//锁定tcpip通信
		StateTime=0;		
		LCD_DisableTimer();
		LCD_clear();//清屏
		gSendUDP=0;
		gMenu=1;
		LCD_wcenter(2,work[Language],0);//显示正在工作
		while(netlock){
			if((rlen=DM9000_RecvBuf(rbuf))!=0){
				dat=rbuf[0x0c]+rbuf[0x0d]*0x100;	
				if(dat==ARP_PACKET)
					Arp_receive(rbuf);
				else if(dat==IP_PACKET)
					IP_receive(rbuf, rlen);	
				//if(dat==IP_PACKET)
				//	IP_receive(rbuf, rlen);	
			}
			while(gSendUDP){
				Capture_7120(380*276-1);
				UDP_SendImg(gMyDestIP);
				while((rlen=DM9000_RecvBuf(rbuf))!=0){// 接收到有效的网卡数据
					dat=rbuf[0x0c]+rbuf[0x0d]*0x100;
					if(*(U16*)(rbuf+0x0C)==ARP_PACKET)
						Arp_receive(rbuf);
					else if(*(U16*)(rbuf+0x0C)==IP_PACKET)
						IP_receive(rbuf, rlen);			
				}
			}
		}		
		LCD_EnableTimer();
		LCD_clear();//清屏
		FLASH_init();//该写FLASH 时要初始化
		LCD_readtime();
		LCD_readtime();
	    gMenu=0;
		Sys_t=0;		
		SlpTime=RCNR;//睡眠时间重新初始化,
	}
}

⌨️ 快捷键说明

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