OpenEdv-开源电子网

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

裸机 lwip UDP 数据接收求助

[复制链接]

18

主题

190

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2012-6-18
在线时间
157 小时
发表于 2018-6-3 10:25:00 | 显示全部楼层 |阅读模式
10金钱
最近,一个接口设备项目,需要对某设备发出的UDP 数据 进行解析显示,输出一帧数据为:
44        41        54        41        2A        29        0        0        0        BF        DE        A0        41        BF        DE        A0        41        0        0        48        42        0        0        48        42        0        0        48        42        0        0        48        42        0        0
48        42        0        0        48        42        2A        0        0        0        17        F2        7C        42        17        F2        7C

现在遇到的问题是如果采用指针判断非空则只能接收完data*,帧头后续数据将错过。但是设备发出的udp 帧无帧尾,且不定长。
一时没有好想法。求助。
void udp_input_recv(void *arg,struct udp_pcb *upcb,struct pbuf *p,struct ip_addr *addr,u16_t port)
{
        u32 data_len = 0;
        struct pbuf *q;
        if(p!=NULL){        //只能接收6个字节帧头
          。。。。。


最佳答案

查看完整内容[请看2#楼]

如果要这样接收,从原理上你得行得通才行。判断非0是肯定不行的了。 要嘛有特定的字符串,要嘛通过超时判断。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-6-3 10:25:01 | 显示全部楼层
如果要这样接收,从原理上你得行得通才行。判断非0是肯定不行的了。
要嘛有特定的字符串,要嘛通过超时判断。
回复

使用道具 举报

22

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2013-10-9
在线时间
73 小时
发表于 2018-6-4 17:17:58 | 显示全部楼层
正点原子 发表于 2018-6-4 02:06
如果要这样接收,从原理上你得行得通才行。判断非0是肯定不行的了。
要嘛有特定的字符串,要嘛通过超时判 ...

原子哥,问个事,教程中裸机时候LWIP用TIM3产生LOCALTIME来周期性延时
上UCOS后为啥不用TIM3了,也不用这个LOCALTIME了
无兄弟不篮球
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-6-5 01:43:34 | 显示全部楼层
borrow1988 发表于 2018-6-4 17:17
原子哥,问个事,教程中裸机时候LWIP用TIM3产生LOCALTIME来周期性延时
上UCOS后为啥不用TIM3了,也不用 ...

已经在你的提问帖回复了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

18

主题

190

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1065
金钱
1065
注册时间
2012-6-18
在线时间
157 小时
 楼主| 发表于 2018-6-6 00:17:16 | 显示全部楼层
正点原子 发表于 2018-6-4 02:06
如果要这样接收,从原理上你得行得通才行。判断非0是肯定不行的了。
要嘛有特定的字符串,要嘛通过超时判 ...

谢谢。搞好了,其实数据还是有规律的。帧头5个字节,之后是PID 4个字节+8个4byte的float 数据,这样就简单办了。因为最大输出不足200个字节,所以直接定义接收缓存200.谢谢
回复

使用道具 举报

22

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2013-10-9
在线时间
73 小时
发表于 2018-6-6 21:56:46 | 显示全部楼层
正点原子 发表于 2018-6-5 01:43
已经在你的提问帖回复了

。。。。谢谢原子哥
无兄弟不篮球
回复

使用道具 举报

5

主题

15

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2018-1-30
在线时间
7 小时
发表于 2018-6-6 22:28:39 | 显示全部楼层
这种数据通信还是定义个协议比较好,规范数据帧的格式和内容。
回复

使用道具 举报

2

主题

12

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2018-10-5
在线时间
1 小时
发表于 2018-10-6 19:31:03 来自手机 | 显示全部楼层
正点原子 发表于 2018-6-5 01:43
已经在你的提问帖回复了

原子哥 能告诉我 F429的网口的开发介绍 哪个视频或者 资料里有? 给个链接 跪谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 19:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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