• 大小: 274KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: 其他
  • 标签: uip  

资源简介

AVR配合ENC28J60芯片移植uIP实现web客户端 Atmega644+ENC28J60+AtmelStudio6.1,移植uIP1.0协议栈,实现网络客户端功能,可以访问www网页获取数据

资源截图

代码片段和文件信息


#include 
#include 
#include “uip.h“
#include “uip_arp.h“
#include “tapdev.h“
#include “LCD.h“
#include “timer.h“
#include 


#define BUF ((struct uip_eth_hdr *)&uip_buf[0])

#ifndef NULL
#define NULL (void *)0
#endif /* NULL */

unsigned char DDRAM_address[]={
0x800x810x820x830x840x850x860x87      //第一行
0x900x910x920x930x940x950x960x97      //第二行
0x880x890x8a0x8b0x8c0x8d0x8e0x8f      //第三行
0x980x990x9a0x9b0x9c0x9d0x9e0x9f      //第四行
};

volatile unsigned int arp_count; //10s定时器计数
volatile unsigned int periodic_count; //0.5s定时器计数
volatile unsigned char arp_flag = 0; //10s定时标志位
volatile unsigned char periodic_flag = 0; //0.5s定时标志位

/*---------------------------------------------------------------------------*/

int main(void) {
int i;
uip_ipaddr_t ipaddr;
struct timer periodic_timer arp_timer;
unsigned char webclient_get_flag = 0;

timer_init(); //修改的初始化
USART0_init();
LCD_init();

uip_init(); //uip初始化
uip_arp_init();

uip_ipaddr(ipaddr 1921681123); //IP
uip_sethostaddr(ipaddr);
uip_ipaddr(ipaddr 2552552550); //掩码
uip_setnetmask(ipaddr);
uip_ipaddr(ipaddr 19216811); //网关
uip_setdraddr(ipaddr);

tapdev_init(); //以太网初始化

webclient_init(); //web client初始化(此处无需配置,为空函数)
resolv_init(); //DNS解析初始化
uip_ipaddr(ipaddr19216811); //DNS服务器
resolv_conf(ipaddr);
resolv_query(“www.xxx.com“); //网页服务器
 
while(1) 
{
//LCD_show_number(30uip_conn->tcpstateflags); //检测连接状态
uip_len = tapdev_read(); //读以太网包,返回包长
if(uip_len > 0) 
{
if(BUF->type == htons(UIP_ETHTYPE_IP)) //为IP包
{
uip_arp_ipin(); //IP数据包处理函数
uip_input(); //实际为uip_process,IP包核心处理函数
if(uip_len > 0)
{
uip_arp_out(); //发出ARP包
tapdev_send(); //数据送出
}
}
else if(BUF->type == htons(UIP_ETHTYPE_ARP)) //为ARP包
{
uip_arp_arpin(); //ARP数据包处理函数
/* If the above function invocation resulted in data that
   should be sent out on the network the global variable
   uip_len is set to a value > 0. */
if(uip_len > 0) 
{
tapdev_send(); //ARP响应
}
}

else if(periodic_flag == 1) //0.5秒定时
{
periodic_flag = 0;
for(i = 0; i < UIP_CONNS; i++) //
{
uip_periodic(i); //uip定期处理函数
/* If the above function invocation resulted in data that
   should be sent out on the network the global variable
   uip_len is set to a value > 0. */
if(uip_len > 0) //有数据需要发送
{
uip_arp_out();
tapdev_send();
}
}
#if UIP_UDP //如果支持UDP
for(i = 0; i < UIP_UDP_CONNS; i++) 
{
uip_udp_periodic(i);
/* If the above function invocation resulted in data that
   should be sent out on the network the global variable
   uip_len is set to a value > 0. */
if(uip_len > 0) 
{
uip_arp_out();
tapdev_send();
}
}
#endif /* UIP_UDP */
      
      
if(a

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-06-05 15:47  avr_enc28j60_uIP\
     目录           0  2014-06-05 15:47  avr_enc28j60_uIP\Rainest\
     目录           0  2014-06-05 15:47  avr_enc28j60_uIP\Rainest\DELAY\
     文件        1582  2014-05-22 14:12  avr_enc28j60_uIP\Rainest\DELAY\Delay.c
     文件         260  2014-05-22 14:12  avr_enc28j60_uIP\Rainest\DELAY\Delay.h
     目录           0  2014-06-05 15:50  avr_enc28j60_uIP\Rainest\Debug\
     目录           0  2014-06-05 15:47  avr_enc28j60_uIP\Rainest\Debug\DELAY\
     文件          85  2014-05-30 11:00  avr_enc28j60_uIP\Rainest\Debug\DELAY\Delay.d
     文件        4720  2014-05-30 11:00  avr_enc28j60_uIP\Rainest\Debug\DELAY\Delay.o
     目录           0  2014-06-05 15:47  avr_enc28j60_uIP\Rainest\Debug\ENC28J60\
     文件        3817  2014-05-30 14:56  avr_enc28j60_uIP\Rainest\Debug\ENC28J60\enc28j60.d
     文件       21540  2014-05-30 14:56  avr_enc28j60_uIP\Rainest\Debug\ENC28J60\enc28j60.o
     文件        3402  2014-05-30 11:01  avr_enc28j60_uIP\Rainest\Debug\ENC28J60\spi.d
     文件        5776  2014-05-30 11:01  avr_enc28j60_uIP\Rainest\Debug\ENC28J60\spi.o
     目录           0  2014-06-05 15:47  avr_enc28j60_uIP\Rainest\Debug\LCD\
     文件        3377  2014-05-30 11:01  avr_enc28j60_uIP\Rainest\Debug\LCD\LCD.d
     文件       18204  2014-05-30 11:01  avr_enc28j60_uIP\Rainest\Debug\LCD\LCD.o
     文件        8439  2014-06-05 15:50  avr_enc28j60_uIP\Rainest\Debug\Makefile
     文件          13  2014-06-05 15:50  avr_enc28j60_uIP\Rainest\Debug\Rainest.eep
     文件       76851  2014-06-05 15:50  avr_enc28j60_uIP\Rainest\Debug\Rainest.elf
     文件       32062  2014-06-05 15:50  avr_enc28j60_uIP\Rainest\Debug\Rainest.hex
     文件      290731  2014-06-05 15:50  avr_enc28j60_uIP\Rainest\Debug\Rainest.lss
     文件       57030  2014-06-05 15:50  avr_enc28j60_uIP\Rainest\Debug\Rainest.map
     文件       31384  2014-06-05 15:50  avr_enc28j60_uIP\Rainest\Debug\Rainest.srec
     目录           0  2014-06-05 15:47  avr_enc28j60_uIP\Rainest\Debug\UIP\
     文件        1788  2014-05-30 14:56  avr_enc28j60_uIP\Rainest\Debug\UIP\resolv.d
     文件       16124  2014-05-30 14:56  avr_enc28j60_uIP\Rainest\Debug\UIP\resolv.o
     文件        1802  2014-05-30 14:56  avr_enc28j60_uIP\Rainest\Debug\UIP\tapdev.d
     文件        4324  2014-05-30 14:56  avr_enc28j60_uIP\Rainest\Debug\UIP\tapdev.o
     文件        3387  2014-05-30 11:01  avr_enc28j60_uIP\Rainest\Debug\UIP\timer.d
     文件        2584  2014-05-30 11:01  avr_enc28j60_uIP\Rainest\Debug\UIP\timer.o
............此处省略53个文件信息

评论

共有 条评论