LwIP环境验证
背景:
开始学习LwIP,因为TCP/IP协议栈对嵌入式太重要了,通过LwIP,一个轻量级的协议栈,可以达到理论和实现的结合。学习的第一步就是要有个环境,我直接使用正点原子的开发板和demo, 先验证环境是否OK,再学习怎么使用3种类型API的调用,最后在学习LwIP的移植和相关的协议TCP/IP ARP ICMP DHCP MAC等
1.开发板DHCP设置:
如果开发板是和电脑的 RJ45 相连,而且开启了 DHCP,开发板就会等待 DHCP 完成,这个时候由于电脑没有 DHCP 服务因此会等待很久,直到 DHCP 超时使用默认地址。所以开发板和电脑直连,就把DHCP关闭。
2.开发板IP设置:
由于开发板和电脑直连,电脑没有DHCP服务,所以开发板使用静态地址,注意!电脑的IP地址一定要和开发板的IP地址在一个网段内!
(注意:若是开发板和电脑都是连接到路由器上的,那就可以使用 DHCP 服务,注意在一个网段内就行)
void lwip_comm_default_ip_set(__lwip_dev *lwipx)
{//默认远端IP为:192.168.1.100lwipx->remoteip[0]=192; lwipx->remoteip[1]=168;lwipx->remoteip[2]=1;lwipx->remoteip[3]=100;//MAC地址设置(高三字节固定为:2.0.0,低三字节用STM32唯一ID)lwipx->mac[0]=dm9000cfg.mac_addr[0];lwipx->mac[1]=dm9000cfg.mac_addr[1];lwipx->mac[2]=dm9000cfg.mac_addr[2];lwipx->mac[3]=dm9000cfg.mac_addr[3];lwipx->mac[4]=dm9000cfg.mac_addr[4];lwipx->mac[5]=dm9000cfg.mac_addr[5]; //默认本地IP为:192.168.1.30lwipx->ip[0]=192; lwipx->ip[1]=168;lwipx->ip[2]=1;lwipx->ip[3]=30;//默认子网掩码:255.255.255.0lwipx->netmask[0]=255; lwipx->netmask[1]=255;lwipx->netmask[2]=255;lwipx->netmask[3]=0;//默认网关:192.168.1.1lwipx->gateway[0]=192; lwipx->gateway[1]=168;lwipx->gateway[2]=1;lwipx->gateway[3]=1; lwipx->dhcpstatus=0;//没有DHCP
}
3.PC端设置:
选择“使用下面的 IP 地址”和“使用下面的 DNS 服务器地址”。
在 IP 地址栏填入:192.168.1.x(x为 2-254),
子网掩码:255.255.255.0
默认网关:192.168.1.1,
首选 DNS 服务器:192.168.1.1,
注意!电脑的IP地址一定要和开发板的IP地址在一个网段内!
4.打开电脑终端:cmd
ipconfig:查看电脑IP地址,确保设置正常和开发板在同一个网段。
ping开发板IP
ping 192.168.1.30
ping有开发板的回应,证明lwip和开发板与电脑之间可以进行通讯,有这个环境才好做后面的验证。