• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

子网掩码的问题

蓝蓝的天 2019-04-12 浏览量:783
我用STM32F767做试验机,用到网口。
买了一个开发板,例程里的网口例子是需要知道电脑的IP地址。
老板说不行,最好是直接连。我搞不了,折中了一下,只要知道
在哪个网段就可以了。我试了一下,搞好了。
我是这样搞的:
//lwip 默认IP设置
//lwipx:lwip控制结构体指针
void lwip_comm_default_ip_set(__lwip_dev *lwipx)
{
        u32 sn0;
        sn0=*(vu32*)(0x1FF0F420);//获取STM32的唯一ID的前24位作为MAC地址后三字节
        //默认远端IP为:192.168.1.100

        lwipx->remoteip[0]=169;        
        lwipx->remoteip[1]=254;
        lwipx->remoteip[2]=255;
        lwipx->remoteip[3]=255;
        
        //MAC地址设置(高三字节固定为:2.0.0低三字节用STM32唯一ID)
        lwipx->mac[0]=2;//高三字节(IEEE称之为组织唯一IDOUI)地址固定为:2.0.0
        lwipx->mac[1]=0;
        lwipx->mac[2]=0;
        lwipx->mac[3]=(sn0>>16)&0XFF;//低三字节用STM32的唯一ID
        lwipx->mac[4]=(sn0>>8)&0XFFF;
        lwipx->mac[5]=sn0&0XFF; 

        lwipx->ip[0]=169;        
        lwipx->ip[1]=254;
        lwipx->ip[2]=62;
        lwipx->ip[3]=30;

        //默认子网掩码:255.255.255.0
        lwipx->netmask[0]=255;        
        lwipx->netmask[1]=255;
        lwipx->netmask[2]=0;
        lwipx->netmask[3]=0;
        //默认网关:192.168.1.1

        lwipx->gateway[0]=169;        
        lwipx->gateway[1]=254;
        lwipx->gateway[2]=62;

        lwipx->gateway[3]=1;
        lwipx->dhcpstatus=0;//没有DHCP        


以上是下位机IP地址设置代码。
SckServer.Protocol = sckUDPProtocol


With SckServer
.RemoteHost = "169.254.255.255"
.RemotePort = 50000
.LocalPort = 50000
.Bind 50000

End With

这是上位机用VB编写的网口初始化代码。

1.jpg

这是电脑IP地址设置。这样的话,可以不需要知道电脑IP地址。
可是需要把电脑的子网掩码设成255.255.0.0。
老板说不行,我觉得也不妥。
那如果把电脑的子网掩码改成255.255.255.0
就意味着下位机的子网掩码也要改成255.255.255.0.
可是这样网口连接不上。
请问高手,还应该怎么设置才能让网口通讯正常呢?谢谢!

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 理论上255.255.0.0是可以覆盖到255.255.255.0这样的子网的啊。

    你设备间联网是通过了交换机吗?


    • 发布于 2019-04-17
    • 举报
    • 评论 1
    • 0
    • 0
蓝蓝的天 回复了 xdsnet:没有。。。。。。。。。。。 回复

其他答案 数量:0

相关问题

问题达人换一批

子网掩码的问题