3960|9

86

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

求助一个简单的uIP功能问题 [复制链接]

现在用LM3S9B96作为下位机,通过TCP协议和PC机的上位机通信。现在想实现的功能就是9B96发送一些少量的数据给PC,没有速度要求,但是要求不能出错,所以没有采用UDP。但是现在PC端用TCP助手一直接收不到数据。

 

而且现在有一点不太明白,光调用uip_send这个函数就能实现发送了吗?我看源文件只是做了一个内存拷贝,根本没涉及到底层的一些函数啊?假如我想给PC发送“123”这三个数字,直接ROM_EthernetPacketPut(ETH_BASE, sendchar, len)肯定是不行的吧,因为没有包装到帧里面。现在不太明白怎么能把123这个发送的内容包装到帧里面,然后通过ROM_EthernetPacketPut发送呢?

 

我参考了StellarisWare里面uip的例程,但是好像都是作为Server的例程,跟我这个好像又不太相符。

 

希望各位指点一下啊,我这个实现起来应该很简单,但是现在不太明白怎么入手。不知道我应该自己写那些函数的内容,哪些内容我是不用关心完全不用修改的,只要直接调用就可以了。对移植和使用的一个流程不太懂。

[ 本帖最后由 ultrabenz 于 2012-5-31 15:59 编辑 ]

最新回复

传上来看看。  详情 回复 发表于 2012-6-1 10:49
 
点赞 关注

回复
举报

1803

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

回复 楼主 ultrabenz 的帖子

首先要建立连接,然后再发送。
 
 

回复

86

帖子

0

TA的资源

一粒金砂(高级)

板凳
 

回复 沙发 Study_Stellaris 的帖子

能再说的具体一些吗?而且我现在是想由单片机这边主动向PC发数据,如何处理呢?
 
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

4
 

回复 板凳 ultrabenz 的帖子

先在 PC 机上打开一个端口。作为 Server 端。
然后在单片机去建立连接,连接建立后就调用相关 API 发送数据了。
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(高级)

5
 

回复 4楼 Study_Stellaris 的帖子

我现在是这样做的,在pc端用网络调试助手,作为server端,事先打开监听窗口。
ETH_init()是用于硬件初始化的,都是ROM_XXX的那些函数,包括设置MAC地址。我设置了单片机这边client端的地址为172.21.28.10,网关地址172.21.28.1,子网掩码255.255.255.0。PC端的IP地址是172.21.28.90。现在就是卡在uip_connect()上了,一直没有连接。
  ETH_init();
    uip_init();
   
    uip_ipaddr(&ipaddr, 172,21,28,10);
    uip_sethostaddr(&ipaddr);
    uip_ipaddr(&ipaddr, 172,21,28,1);
    uip_setdraddr(&ipaddr);
    uip_ipaddr(&ipaddr, 255,255,255,0);
    uip_setnetmask(&ipaddr);
   
   
    uip_ipaddr(&ipaddr, 172,21,28,90);
    while (0 == uip_connect(&ipaddr, HTONS(1000)));

还有一个事儿我不太明白,调用uip_connect之后,系统自动发送SYN帧,然后等待ACK。但是我调用uip_connect之后,没有地方调用过ROM_EthernetPacketPutNonBlocking这样的底层发送函数啊?那个SYN帧是怎么发出去的?是不是就没发出去呢?
 
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

6
 

回复 5楼 ultrabenz 的帖子

只有这些还是不行的。
还要调用 uip_periodic.
应该有这样参考的例子。
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(高级)

7
 

回复 6楼 Study_Stellaris 的帖子

您原来做过的uip有作为客户端的例子吗?我在uip官方的app里面找到了一个webclient的例程,但是和我的这种只是发送数据的TCP客户端还不一样。
 
 
 

回复

1803

帖子

0

TA的资源

五彩晶圆(高级)

8
 

回复 7楼 ultrabenz 的帖子

传上来看看。
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(高级)

9
 
这是uip官方的一些资料,里面有个webclient的例程,您可以看看。我现在对移植这个协议栈有点没头绪,不知道应该在哪儿加入自己的东西,能够完成我想要的功能。就是TCP客户端主动发生数据给远程的PC主机。

uip-1.0.rar

1.45 MB, 下载次数: 44

 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(高级)

10
 

回复 8楼 Study_Stellaris 的帖子

您可以看一下楼上的附件。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表