打印
[STM32F7]

网口的问题

[复制链接]
1095|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我项目中用到网口,现在网口可以连上了,正在测试。程序是这样写的:
单片机大概一秒往上位机发一次数据,用网络调试助手试,
发个1,单片机板上一个灯亮,发个2,灯灭。

让单片机不停往电脑发送数据,偶尔会停,但是这时网络仍然连着。

上位机发一个2,灯灭,发个1,灯亮,然后单片机又开始发送数据。
部分代码如下:
i++;
                if(i>=5000000)
                {
                        i=0;
                        //sprintf(tcp_demo_sendbuf1, "%c\n", j ); // C4996
                        tcp_demo_sendbuf1[0]=j/1000000000+0x30;
                        tcp_demo_sendbuf1[1]=j%1000000000/100000000+0x30;
                        tcp_demo_sendbuf1[2]=j%100000000/10000000+0x30;
                        tcp_demo_sendbuf1[3]=j%10000000/1000000+0x30;
                        tcp_demo_sendbuf1[4]=j%1000000/100000+0x30;
                        tcp_demo_sendbuf1[5]=j%100000/10000+0x30;
                        tcp_demo_sendbuf1[6]=j%10000/1000+0x30;
                        tcp_demo_sendbuf1[7]=j%1000/100+0x30;
                        tcp_demo_sendbuf1[8]=j%100/10+0x30;
                        tcp_demo_sendbuf1[9]=j%10+0x30;
                       
                        udp_demo_senddata(udppcb);
                        j++;
                }

请高手指教,谢谢!
还有一个问题,现在联网需要改主机IP地址,可是我们买的别人的设备,
不需要改主机IP地址就能联网。不知道他们怎么做的。请大神介绍一下思路。
谢谢!
沙发
mohanwei| | 2018-12-1 19:59 | 只看该作者
用UDP广播

使用特权

评论回复
板凳
zhuomuniao110| | 2018-12-1 21:12 | 只看该作者
他们用了IP自动获取吧

使用特权

评论回复
地板
xuanhuanzi| | 2018-12-2 09:32 | 只看该作者
你要知道人家的代码才好

使用特权

评论回复
5
Cjy_JDxy|  楼主 | 2018-12-3 15:08 | 只看该作者

那程序要改那一块呢?谢谢!

使用特权

评论回复
6
mohanwei| | 2018-12-3 15:19 | 只看该作者
Cjy_JDxy 发表于 2018-12-3 15:08
那程序要改那一块呢?谢谢!

目的IP地址改为255.255.255.255,这个就是广播地址

使用特权

评论回复
7
Cjy_JDxy|  楼主 | 2018-12-3 15:34 | 只看该作者
本帖最后由 Cjy_JDxy 于 2018-12-3 15:36 编辑
mohanwei 发表于 2018-12-3 15:19
目的IP地址改为255.255.255.255,这个就是广播地址

谢谢。

使用特权

评论回复
8
Cjy_JDxy|  楼主 | 2018-12-4 11:19 | 只看该作者
mohanwei 发表于 2018-12-3 15:19
目的IP地址改为255.255.255.255,这个就是广播地址

我现在把目的IP地址改为255.255.255.255,电脑IP地址自动获得,本地IP地址设为
192.168.1.30。用网络调试助手测试,把电脑侧本机IP地址设为192.168.1.109,
就收到下位机发送的数据了。可是电脑网单片机发数据,单片机收不到。

使用特权

评论回复
9
mohanwei| | 2018-12-4 11:26 | 只看该作者
Cjy_JDxy 发表于 2018-12-4 11:19
我现在把目的IP地址改为255.255.255.255,电脑IP地址自动获得,本地IP地址设为
192.168.1.30。用网络调试 ...

广播通信:
两边的UDP监听端口要一致
都往广播地址发
靠数据包里的自定义字段识别来源

使用特权

评论回复
10
Cjy_JDxy|  楼主 | 2018-12-4 15:53 | 只看该作者
mohanwei 发表于 2018-12-4 11:26
广播通信:
两边的UDP监听端口要一致
都往广播地址发


谢谢你的回复!我现在单片机程序里改了目的地址为255.255.255.255.
其他地方还要改吗?
还有一个问题,网络共享中心里有无线连接和本地连接。上网用的是无线网。
我如果把无线连接的网络属性里的IP地址改为自动获得,同时把本地连接里的
网络属性里的IP地址改为自动获得,就什么也收不到;
如果把无线连接的网络属性里的IP地址改为自动获得,同时把本地连接里的
网络属性里的IP地址设为一个固定值,网络调试助手可以收到单片机的数据,

但是单片机收不到网络助手发的数据。请多指教!

使用特权

评论回复
11
mohanwei| | 2018-12-4 17:25 | 只看该作者
楼主对网络原理不熟悉啊
IP设为自动获取,是要对端具备DHCP服务器才行的。现在对端是一个单片机,估计不会开放什么DHCP服务给你的电脑分配IP,那就应该给电脑手动分配一个静态IP

使用特权

评论回复
12
Cjy_JDxy|  楼主 | 2018-12-4 17:38 | 只看该作者
mohanwei 发表于 2018-12-4 17:25
楼主对网络原理不熟悉啊
IP设为自动获取,是要对端具备DHCP服务器才行的。现在对端是一个单片机,估计不会 ...

谢谢你热心的解答!那你说的那个广播通信还好不好使啊?我真的是个小菜鸟

使用特权

评论回复
13
mohanwei| | 2018-12-4 18:19 | 只看该作者
好使

使用特权

评论回复
14
Cjy_JDxy|  楼主 | 2018-12-5 08:35 | 只看该作者

那照你这么说,用单片机和PC机网络通讯,不能设置IP地址自动获得。
可是我们老板说,别人的产品IP地址自动获得可以通讯。这可怎么办呀?

使用特权

评论回复
15
Cjy_JDxy|  楼主 | 2018-12-5 08:41 | 只看该作者

如果手动分配一个静态IP,那不用广播方式也能通信。
是不是我哪儿理解有误啊

使用特权

评论回复
16
mohanwei| | 2018-12-5 09:10 | 只看该作者
跟系统设置有关。自动获取如果能获取到,就跟静态IP没有区别。
广播方式优点是不需要知道对方具体IP是什么。

使用特权

评论回复
17
磨砂| | 2018-12-5 10:01 | 只看该作者
对这块总是闹不明白

使用特权

评论回复
18
Cjy_JDxy|  楼主 | 2018-12-5 10:04 | 只看该作者
mohanwei 发表于 2018-12-5 09:10
跟系统设置有关。自动获取如果能获取到,就跟静态IP没有区别。
广播方式优点是不需要知道对方具体IP是什么 ...

自动获取的话,可以上网,应该可以获取到吧。
我现在不用广播方式可以正常通信,改成广播方式,就把目标IP地址改为255.255.255.255网络调试助手可以收到单片机发的数据,单片机收不到网络调试助手发的数据。



使用特权

评论回复
19
mohanwei| | 2018-12-5 10:13 | 只看该作者
不可能收不到,你在上位机定时发送,看单片机的网口接收指示灯是否会闪就知道了。
单片机代码的问题

使用特权

评论回复
20
Cjy_JDxy|  楼主 | 2018-12-5 10:19 | 只看该作者
mohanwei 发表于 2018-12-5 10:13
不可能收不到,你在上位机定时发送,看单片机的网口接收指示灯是否会闪就知道了。
单片机代码的问题 ...

发送的时候网口接手指示灯是闪的,那就是说收到了。
我单片机代码只改了目标IP地址W为255.255.255.255,别的没动

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:绿水本无忧因风皱面,青山原不老为雪白头。

553

主题

3530

帖子

19

粉丝