完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请教下,关于 lwip 的 IP4_ADDR 这个使用 ?//lwip控制结构体
typedef struct { u8 mac[6]; //MAC地址 u8 remoteip[4]; //远端主机IP地址 u8 ip[4]; //本机IP地址 u8 netmask[4]; //子网掩码 u8 gateway[4]; //默认网关的IP地址 vu8 dhcpstatus; //dhcp状态 //0,未获取DHCP地址; //1,进入DHCP获取状态 //2,成功获取DHCP地址 //0XFF,获取失败. }__lwip_dev; //lwipx:lwip控制结构体指针 void lwip_comm_default_ip_set(__lwip_dev *lwipx) { u8 i; u32 mcuID[3]; for(i=0; i<3; i++) { mcuID = MCU_GetChipID(i*4); //获取STM32的唯一ID号,后24位作为MAC地址后三字节 } //默认远端IP为:192.168.1.123 lwipx->remoteip[0]=192; lwipx->remoteip[1]=168; lwipx->remoteip[2]=1; lwipx->remoteip[3]=123; //MAC地址设置(高三字节固定为:2.0.0,低三字节用STM32唯一ID) lwipx->mac[0]=2;//高三字节(IEEE称之为组织唯一ID,OUI)地址固定为:2.0.0 lwipx->mac[1]=0; lwipx->mac[2]=0; lwipx->mac[3]=(mcuID[2]>>16)&0XFF;//低三字节用STM32的唯一ID lwipx->mac[4]=(mcuID[2]>>8)&0XFFF; lwipx->mac[5]=mcuID[2]&0XFF; //默认本地IP为:192.168.1.105 lwipx->ip[0]=192; lwipx->ip[1]=168; lwipx->ip[2]=1; lwipx->ip[3]=105; //默认子网掩码:255.255.255.0 lwipx->netmask[0]=255; lwipx->netmask[1]=255; lwipx->netmask[2]=255; lwipx->netmask[3]=0; //默认网关:192.168.1.1 lwipx->gateway[0]=192; lwipx->gateway[1]=168; lwipx->gateway[2]=0; lwipx->gateway[3]=1; lwipx->dhcpstatus=0;//没有DHCP } { lwip_comm_default_ip_set( &lwipdev ); // IP addresses initialization IP_ADDRESS[0] = 192; IP_ADDRESS[1] = 168; IP_ADDRESS[2] = 0; IP_ADDRESS[3] = 105; NETMASK_ADDRESS[0] = 255; NETMASK_ADDRESS[1] = 255; NETMASK_ADDRESS[2] = 255; NETMASK_ADDRESS[3] = 0; GATEWAY_ADDRESS[0] = 192; GATEWAY_ADDRESS[1] = 168; GATEWAY_ADDRESS[2] = 0; GATEWAY_ADDRESS[3] = 1; tcpip_init( NULL, NULL ); // 方法 1 ok IP4_ADDR(&ipaddr, IP_ADDRESS[0], IP_ADDRESS[1], IP_ADDRESS[2], IP_ADDRESS[3]); IP4_ADDR(&netmask, NETMASK_ADDRESS[0], NETMASK_ADDRESS[1] , NETMASK_ADDRESS[2], NETMASK_ADDRESS[3]); IP4_ADDR(&gw, GATEWAY_ADDRESS[0], GATEWAY_ADDRESS[1], GATEWAY_ADDRESS[2], GATEWAY_ADDRESS[3]); // 方法 2 不行 ,不知道是为何 ?? IP4_ADDR(&ipaddr,lwipdev.ip[0],lwipdev.ip[1],lwipdev.ip[2],lwipdev.ip[3]); IP4_ADDR(&netmask,lwipdev.netmask[0],lwipdev.netmask[1] ,lwipdev.netmask[2],lwipdev.netmask[3]); IP4_ADDR(&gw,lwipdev.gateway[0],lwipdev.gateway[1],lwipdev.gateway[2],lwipdev.gateway[3]); // add the network interface (IPv4/IPv6) with RTOS netif_add(&gnetif, &ipaddr, &netmask, &gw, NULL, eernetif_init, &tcpip_input); } 具体描述: 使用方法1 可以ping 网 使用方法2,ping 网不用, 上述设置的 ip 地址也都是一样的,所以想请教下,这是为何 ?????? |
|
相关推荐
4个回答
|
|
终于找到问题点了,但是目前也还是不知道为何这样啊 ?
就是 ip 地址的 第2字节不能够设置为 1,设置为 0 可以, 是不是跟漏油器的 默认网关的 第2字节有关啊 ???? 因为我的漏油器的 默认网关第2字节 就是 为 0 |
|
|
|
用printf把lwipdev.ip[0]这种数据全部通过串口打印出来,然后看是不是和你设置的一样的
|
|
|
|
串口打样出来的数据是对的
|
|
|
|
要和路由器一致
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2569 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2365 浏览 5 评论
3210 浏览 3 评论
2837 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2789 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
666浏览 1评论
905浏览 0评论
1026浏览 0评论
671浏览 0评论
499浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 02:47 , Processed in 1.149846 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号