硬汉嵌入式论坛

 找回密码
 立即注册
查看: 757|回复: 4
收起左侧

[有问必答] stm32 裸机UDP组播

[复制链接]

4

主题

7

回帖

19

积分

新手上路

积分
19
发表于 2024-7-31 13:39:13 | 显示全部楼层 |阅读模式
err = igmp_joingroup(IP_ADDR_ANY, &multicast_addr);
这个err 返回值是ERR_VAL        = -6,
err = udp_sendto(upcb, p, &multicast_addr, MY_UDP_LOCAL_PORT);
这个err 返回值是ERR_RTE        = -4,


这个咋解决呢。之前都好好的,后来再使就给我报这些错了
有兄弟遇到过这种情况吗?
我能想到的问题,该排查的问题都排查了
还是不好使



回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-8-1 08:52:51 | 显示全部楼层
楼主这个用的那个协议栈,错误类型ERR_RTE        = -4的含义是什么
回复

使用道具 举报

4

主题

7

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2024-8-1 11:19:35 | 显示全部楼层
struct udp_pcb* upcb;
static struct netif gnetif;
ip_addr_t multicast_addr;

void udp_multicast_init()
{
    err_t err;
    // ip4_addr_t recv;
    IP4_ADDR(&multicast_addr, 235, 0, 0, 10);
    upcb = udp_new();
    if (upcb)
    {       
        err = udp_bind(upcb, IP_ADDR_ANY, 10010);
        if (err != ERR_OK)
        {
            udp_remove(upcb);
            printf("can not bind pcb\n");
            return;
        }

        udp_bind_netif(upcb, &gnetif);
    }
}
解决了,我没用那个函数了。这样就行
回复

使用道具 举报

4

主题

7

回帖

19

积分

新手上路

积分
19
 楼主| 发表于 2024-8-1 11:21:50 | 显示全部楼层
eric2013 发表于 2024-8-1 08:52
楼主这个用的那个协议栈,错误类型ERR_RTE        = -4的含义是什么

我解决了。-4是路由问题,-6 是非法值。我修改程序后没使用igmp_joingtoup()就没问题了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-8-2 01:00:10 | 显示全部楼层
tristan 发表于 2024-8-1 11:21
我解决了。-4是路由问题,-6 是非法值。我修改程序后没使用igmp_joingtoup()就没问题了

防不胜防。谢谢告知最终原因。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 06:34 , Processed in 0.039660 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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