|
回复 沙发 ddllxxrr 的帖子
不管使用静态IP还是不用,都是执行到以下这个红色标记的断点处就不再往下执行了。
//等待激活链接
UpdateStatus("Waiting for Link");
while((ROM_EthernetPHYRead(ETH_BASE, PHY_MR1) & 0x0004) == 0)//读取PHY寄存器
{
}
UpdateStatus("Link Established");
ROM_EthernetEnable(ETH_BASE);// 使能以太网控制器.
ROM_IntEnable(INT_ETH); // 使能以太网控制器的中断.
ROM_EthernetIntEnable(ETH_BASE, ETH_INT_RX); // 使能以太网控制器的数据包接收中断.
ROM_IntMasterEnable();// 使能系统总中断
// 初始化 uIP TCP/IP 协议栈.
uip_init();//uip初始化
#ifdef USE_STATIC_IP //使用静态IP
uip_ipaddr(ipaddr, DEFAULT_IPADDR0, DEFAULT_IPADDR1, DEFAULT_IPADDR2,
DEFAULT_IPADDR3);//构建一个4字节的IP地址
uip_sethostaddr(ipaddr);//设定主机的IP地址
ShowIPAddress(ipaddr);//在屏幕上显示IP地址并通过UART传送
UpdateStatus("Web server ready");//在LCD上显示状态字符串并通过串口传送
uip_ipaddr(ipaddr, DEFAULT_NETMASK0, DEFAULT_NETMASK1, DEFAULT_NETMASK2,
DEFAULT_NETMASK3);//构建一个4字节的IP地址
uip_setnetmask(ipaddr);//设定子网掩码
#else //不使用静态IP
uip_ipaddr(ipaddr, 0, 0, 0, 0);//构建一个4字节的IP地址
uip_sethostaddr(ipaddr);//设定主机的IP地址
UpdateStatus("Waiting for IP address...\n");//在LCD上显示状态字符串并通过串口传送
uip_ipaddr(ipaddr, 0, 0, 0, 0);//构建一个4字节的IP地址
uip_setnetmask(ipaddr);//设定子网掩码 |
|