新手入门
- 积分
- 10
- 金钱
- 10
- 注册时间
- 2019-5-15
- 在线时间
- 4 小时
|

楼主 |
发表于 2017-4-11 00:55:33
|
显示全部楼层
INT8U Init_lwIP(void)
{
struct ip_addr ipaddr;
struct ip_addr netmask;
struct ip_addr gw;
uint8_t macaddress[6] = {0};//{ g_systmp.chipid[5], g_systmp.chipid[4], g_systmp.chipid[3], g_systmp.chipid[2], g_systmp.chipid[1], g_systmp.chipid[0] };
sys_sem_t sem;
INT8U i = 0;
//éèÖÃmacμØÖ·
for( i = 0; i < 6 ; i++)
{
macaddress[i] = g_systmp.chipid[i];
}
sys_init();
/* Initializes the dynamic memory heap defined by MEM_SIZE.*/
mem_init();
/* Initializes the memory pools defined by MEMP_NUM_x.*/
memp_init();
pbuf_init();
netif_init();
USART_Configuration();
printf("TCP/IP initializing... \r\n");
sem = sys_sem_new(0);
tcpip_init(TcpipInitDone, &sem);
sys_sem_wait(sem);
sys_sem_free(sem);
printf("TCP/IP initialized. \r\n");
#if LWIP_DHCP
/* ÆôóÃDHCP·tÎñÆ÷ */
ipaddr.addr = 0;
netmask.addr = 0;
gw.addr = 0;
#else
/* Æôóþ2ì¬IP */
IP4_ADDR(&ipaddr, emacIPADDR0, emacIPADDR1, emacIPADDR2, emacIPADDR3 );
IP4_ADDR(&netmask,emacNET_MASK0, emacNET_MASK1, emacNET_MASK2, emacNET_MASK3 );
IP4_ADDR(&gw, emacGATEWAY_ADDR0, emacGATEWAY_ADDR1, emacGATEWAY_ADDR2, emacGATEWAY_ADDR3 );
#endif
Set_MAC_Address(macaddress);
netif_add(&netif, &ipaddr, &netmask, &gw, NULL, ðernetif_init, &tcpip_input);
netif_set_default(&netif);
#if LWIP_DHCP
dhcp_start(&netif);
#endif
/* read the new IP address */
if(netif.ip_addr.addr != 0)
IPaddress = netif.ip_addr.addr;
netif_set_up(&netif);
return UDP_INIT;
}
代码如下,可以ping通,路由器也可以看到这个ip,用芯片ID做的mac,就是ip一直显示0,奇怪了, |
|