OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7295|回复: 10

原子407板子的UDP测试,遇到些问题。求教

[复制链接]

19

主题

176

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1105
金钱
1105
注册时间
2015-10-27
在线时间
206 小时
发表于 2015-12-3 15:47:38 | 显示全部楼层 |阅读模式
买探索者的时候没买LCD,现在测UDP,那个目标地址怎么设置。
电脑的IP安装教程里面设置的是192.168.1.100,调试助手打开是下面这个,还有本地端口都是默认的。对UDP测试有影响么?
程序运行。调试助手显示发送成功,但是网络数据接收没有内容,是什么情况?
发现程序里面的LCD和按键部分基本对我现在的情况没用,该怎么测UDP.



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

176

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1105
金钱
1105
注册时间
2015-10-27
在线时间
206 小时
 楼主| 发表于 2015-12-3 15:49:04 | 显示全部楼层
网线是接着电脑上,不上路由上
回复 支持 反对

使用道具 举报

3

主题

794

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
1502
金钱
1502
注册时间
2015-3-3
在线时间
460 小时
发表于 2015-12-3 19:18:00 | 显示全部楼层
UDP的端口号应该是1200吧
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-12-3 22:56:35 | 显示全部楼层
开发板先发数据给网络调试助手.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

176

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1105
金钱
1105
注册时间
2015-10-27
在线时间
206 小时
 楼主| 发表于 2015-12-4 10:27:21 | 显示全部楼层
回复【3楼】hpeng1874:
---------------------------------
原子程序里面是8089
回复 支持 反对

使用道具 举报

19

主题

176

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1105
金钱
1105
注册时间
2015-10-27
在线时间
206 小时
 楼主| 发表于 2015-12-4 11:22:40 | 显示全部楼层
 回复【4楼】 正点原子 :
---------------------------------
原子哥我现在有几个疑问,按照程序里面的这些IP,调试工具里面本地Ip应该为192.168.1.100对吧就是远端IP,目标主机IP就是192.168.1.30,因为没有DHCP,这样设置之后,调试工具现实的发送数据成功,但是没有开发板发回来的数据。
ping192.168.1.100是这样,是PING成功了吧


void lwip_comm_default_ip_set(__lwip_dev *lwipx)
{
u32 sn0;
sn0=*(vu32*)(0x1FFF7A10);//获取STM32的唯一ID的前24位作为MAC地址后三字节
//默认远端IP为:192.168.1.100
lwipx->remoteip[0]=192;
lwipx->remoteip[1]=168;
lwipx->remoteip[2]=1;
lwipx->remoteip[3]=100;
//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]=(sn0>>16)&0XFF;//低三字节用STM32的唯一ID
lwipx->mac[4]=(sn0>>8)&0XFFF;;
lwipx->mac[5]=sn0&0XFF; 
//默认本地IP为:192.168.1.30
lwipx->ip[0]=192;
lwipx->ip[1]=168;
lwipx->ip[2]=1;
lwipx->ip[3]=30;
//默认子网掩码: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]=1;
lwipx->gateway[3]=1;
lwipx->dhcpstatus=0;//没有DHCP

回复 支持 反对

使用道具 举报

19

主题

176

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1105
金钱
1105
注册时间
2015-10-27
在线时间
206 小时
 楼主| 发表于 2015-12-4 11:23:20 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
原子哥看5楼谢谢
回复 支持 反对

使用道具 举报

19

主题

176

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1105
金钱
1105
注册时间
2015-10-27
在线时间
206 小时
 楼主| 发表于 2015-12-7 11:15:22 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
帮忙看下啊
回复 支持 反对

使用道具 举报

20

主题

297

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1830
金钱
1830
注册时间
2013-7-29
在线时间
276 小时
发表于 2015-12-9 17:25:07 | 显示全部楼层
UDP的端口号是有一个定义的,你仔细查看下程序就可以了。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-12-9 22:45:42 | 显示全部楼层
回复【6楼】dop101:
---------------------------------
ping 192.168.1.30试试.
你得先知道开发板的IP到底是多少.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

176

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1105
金钱
1105
注册时间
2015-10-27
在线时间
206 小时
 楼主| 发表于 2015-12-10 12:23:14 | 显示全部楼层

回复【10楼】 正点原子 :
---------------------------------
因为没有路由所以用的是静态IP,我用的完全是咱们程序里面的两个远端IP,192.168.1.100和静态IP192.168.1.30。开发板也是探索者的,所以开发板的IP应该 是192.168.1.30了,ping 192.168.1.30是ping不通的。


这是电脑设置的


下面是网络调试助手显示的,通过开发板给它发送的数据是成功了。


我之前以为调试助手下面发的网址应该是给开发板,然后开发板网址在回到调试助手上面显示,好像不是这样
while(res==0)
{
key=KEY_Scan(0);
if(key==WKUP_PRES)break;
if(key==KEY0_PRES)//KEY0按下了,发送数据
{
udp_demo_senddata(udppcb);
}
if(udp_demo_flag&1<<6)//是否收到数据?
{
LCD_Fill(30,250,lcddev.width-1,lcddev.height-1,WHITE);//清上一次数据
LCD_ShowString(30,250,lcddev.width-30,lcddev.height-230,16,udp_demo_recvbuf);//显示接收到的数据
udp_demo_flag&=~(1<<6);//标记数据已经被处理了.

按键通过udp_demo_senddata函数发送的是咱们程序本身定义好的数据,
调试助手下面的网址应该是通过那个If显示在LCD上,是这么,我没有买LCD的。
原子哥总结下我的理解你给我看看对不对:
1.远端IP是192.168.1.100,开发板IP是静态IP192.168.1.30。但是没PING通,按道理说开发板给电脑端发送数据是不能 成功了。但是成功了,是怎么回事?
因为我没有LCD所以ludp_demo.c下面的设置远端IP我给屏蔽了,这样远端IP只能是192.168.1.100了吧
//设置远端IP地址
void udp_demo_set_remoteip(void)
{
u8 *tbuf;
// u16 xoff;
// u8 key;
// LCD_Clear(WHITE);
// POINT_COLOR=RED;
// LCD_ShowString(30,30,200,16,16,"Explorer STM32F4");
// LCD_ShowString(30,50,200,16,16,"UDP Test");
// LCD_ShowString(30,70,200,16,16,"Remote IP Set");  
// LCD_ShowString(30,90,200,16,16,"KEY0:+  KEY2:-");  
// LCD_ShowString(30,110,200,16,16,"KEY_UP:OK");  
tbuf=mymalloc(SRAMIN,100); //申请内存
if(tbuf==NULL)return;
//前三个IP保持和DHCP得到的IP一致
lwipdev.remoteip[0]=lwipdev.ip[0];
lwipdev.remoteip[1]=lwipdev.ip[1];
lwipdev.remoteip[2]=lwipdev.ip[2]; 
// sprintf((char*)tbuf,"Remote IP:%d.%d.%d.",lwipdev.remoteip[0],lwipdev.remoteip[1],lwipdev.remoteip[2]);//远端IP
// LCD_ShowString(30,150,210,16,16,tbuf); 
// POINT_COLOR=BLUE;
// xoff=strlen((char*)tbuf)*8+30;
// LCD_ShowxNum(xoff,150,lwipdev.remoteip[3],3,16,0); 
//// while(1)
// {
// key=KEY_Scan(0);
// if(key==WKUP_PRES)break;
// else if(key)
// {
// if(key==KEY0_PRES)lwipdev.remoteip[3]++;//IP增加
// if(key==KEY2_PRES)lwipdev.remoteip[3]--;//IP减少
// LCD_ShowxNum(xoff,150,lwipdev.remoteip[3],3,16,0X80);//显示新IP
// }
// }

2.我想实现是下面调试助手发送那个网址可以在上面显示,怎么实现啊。
有点长,麻烦原子哥给看下。


回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 18:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表