打印

请教stm32f107的UDP问题

[复制链接]
3852|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kevinleez|  楼主 | 2012-11-20 11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我使用lwip里的udp程序,可以接收数据,但是接收到的数据好像会和其他的ram有冲突,我是接收电脑过来的udp数据,然后通过485发送出去,我看485出来的信号,偶尔会有不对的地方。。。。。
当我把udp的数据减少到100byte时,就没问题,一旦增加到150byte以上,数据就会偶尔出问题。。。。怀疑是否是buf冲突问题。。。各位大侠有遇到过吗?

还有就是我要求速度很高,哪位有不一致协议堆,自己写的UDP程序呢?万分感谢。。。。。kevinleez@163.com
沙发
mohanwei| | 2012-11-20 11:23 | 只看该作者
怎么个“速度很高”?一般应用UDP连续字节流可达1MB/s以上,而串口通常就300-115200bps,换算成字节最大10多KB/s
LWIP很可靠,着重看一下你的接收缓冲区,确定收下一个UDP包前能否把之前的包全部从串口发走

使用特权

评论回复
板凳
kevinleez|  楼主 | 2012-11-20 12:26 | 只看该作者
我现在的速度很低,只是以后要求速度要高。。。。目前1秒钟发送20帧,一帧才500个byte,总共10000byte/秒,换成BIT才80kb/秒呢。。。

使用特权

评论回复
地板
kevinleez|  楼主 | 2012-11-20 12:37 | 只看该作者
还有就是我把st的例程lwip加入我的程序,编译提示ram不够。。。。。。我只有吧lwip中的一些buf改小,不知道是否这样才影响udp接收。还有就是lwip中的udp接收buf,貌似是开的空间,然后用完就释放的。。。不知是否因为这样才导致ram在运行中不够。(不知这种情况在编译的时候是否会提示ram不够)

使用特权

评论回复
5
kevinleez|  楼主 | 2012-11-20 13:17 | 只看该作者
我测试了lwip的demo程序,只是在程序中加入了uart口往外发送数据,当我电脑端不向设备发送udp数据时,uart口发送数据是正确的,当电脑端向设备发送udp数据时,uart口发送的数据就会出错。。。。。。。。那就是说lwip原版程序都是有问题的咯?

使用特权

评论回复
6
mohanwei| | 2012-11-20 16:32 | 只看该作者
毫无疑问是你的程序有问题……LWIP还是很稳定的。
建议先把“opt.h”读懂,自己再参考例程把“lwipopts.h”里用不到的功能屏蔽掉,RAM就节省出来了……整个LWIP程序包只能改这个文件

使用特权

评论回复
7
kevinleez|  楼主 | 2012-11-21 19:46 | 只看该作者
我就是只改了lwipopts.h文件里的参数。。。而且我不改参数,lwip都会有问题。。。

使用特权

评论回复
8
kevinleez|  楼主 | 2012-11-21 19:49 | 只看该作者
我想请教一下,lwip例程,我通过电脑想设备发送udp数据,一帧发送500个数据,而且我把这500个数据都设置成有规律的,然后我仿真stm32f107接收这个udp数据,然后根据规律来判断接收到的数据是否正确,是没有问题的,我很早就测试过 ,但是就是由于相互之间的buf貌似有冲突,接收500byte数据之后,会把其他一些我自己程序的变量修改掉。。。。。。lwip编译发现占用ram巨大啊。

使用特权

评论回复
9
mohanwei| | 2012-11-22 09:30 | 只看该作者
把lwipopts.h发上来看看

使用特权

评论回复
10
crazy2012| | 2013-2-25 21:58 | 只看该作者
关注下

使用特权

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

本版积分规则

46

主题

137

帖子

2

粉丝