OpenEdv-开源电子网

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

lwip udp 连续发送问题(只能看见最后一组数据)

[复制链接]

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2020-10-22
在线时间
14 小时
发表于 2021-3-2 10:08:18 | 显示全部楼层 |阅读模式
1金钱


使用stm32F429 裸跑LWIP    使用 STM32CubeMX 生成


  while (1)
  {
                if( RUNT1 == 0 )
                {
                     RUNT1 = 500 ;
                  LED12 ^=1 ;
                udp_client_send("测试1\r\n");
                udp_client_send("测试2\r\n");
                }
                MX_LWIP_Process();
  
  }


运行结果是我在接收端只能看到 “测试2 ”
两个发送间加1秒延时后 输出

测试1
测试2
测试2
测试2
测试2
测试1
测试2
测试2
测试2
测试1
测试2
测试1
测试2
测试2
测试1
测试2
测试1
测试2
测试1
测试2
测试2
测试1
测试2
测试1
测试2
测试2
测试1
测试2
测试1
测试2
测试2
测试1
测试2
测试2
测试2



根本没有规律
以下是 UDP 发送    谁能帮改一下    能实现多个帧可以连续发送  (实际用时 数据提供 2-3ms的变化数据  说以希望2-3ms 发送一次)



void udp_client_send(char *pData)
{
    struct pbuf *p;
    /* 分配缓冲区空间 */
    p = pbuf_alloc(PBUF_TRANSPORT, strlen(pData), PBUF_POOL);
    if (p != NULL)
    {
        /* 填充缓冲区数据 */
        pbuf_take(p, pData, strlen(pData));
        /* 发送udp数据 */
        udp_send(upcb, p);
        /* 释放缓冲区空间 */
        pbuf_free(p);               
    }
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2021-3-3 01:47:43 | 显示全部楼层
回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2020-10-22
在线时间
14 小时
 楼主| 发表于 2021-3-3 08:43:57 | 显示全部楼层
写到一半没了   
udp_client_send("测试1\r\n");
udp_client_send("测试2\r\n");
这两连在一起的发送  已经解决     是电脑上接收工具的问题  用致远电子的就可以看到 两数据   
1.jpg
其实还有一个问题

在while 循环前的发送 只能收到一个    while循环后的就能收到
刚写的都没了 过程不想在写了   直接写结果吧
就是在第一次发送后需要调用一下    MX_LWIP_Process()   

谁能帮解释一下      MX_LWIP_Process()    对udp发送有什么影响
回复

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2020-10-22
在线时间
14 小时
 楼主| 发表于 2021-3-3 08:46:08 | 显示全部楼层
写到一半没了   
udp_client_send("测试1\r\n");
udp_client_send("测试2\r\n");
这两连在一起的发送  已经解决     是电脑上接收工具的问题  用致远电子的就可以看到 两数据   

其实还有一个问题

在while 循环前的发送 只能收到一个    while循环后的就能收到
刚写的都没了 过程不想在写了   直接写结果吧
就是在第一次发送后需要调用一下    MX_LWIP_Process()   

谁能帮解释一下      MX_LWIP_Process()    对udp发送有什么影响

回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-24 16:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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