搜索
查看: 1319|回复: 3

[求助] stm32f107调用lwip的udp接收数据出问题

[复制链接]

该用户从未签到

1

主题

6

帖子

0

蝴蝶豆

初级会员

最后登录
2021-2-1
发表于 2021-1-29 16:02:57 | 显示全部楼层 |阅读模式
static void udp_server_receive_callback(void *arg, struct udp_pcb *upcb,
    struct pbuf *p, const ip_addr_t *addr, u16_t port)
{
    uint32_t i;

    /* 数据回传 */
    udp_sendto(upcb, p, addr, port);

    /* 打印接收到的数据 */
    printf("get msg from %d:%d:%d:%d port:%d:\r\n",
        *((uint8_t *)&addr->addr), *((uint8_t *)&addr->addr + 1),
        *((uint8_t *)&addr->addr + 2), *((uint8_t *)&addr->addr + 3), port);

    if (p != NULL) {
        struct pbuf *q = p;
        while(q != NULL) {
            //此处接收长度由问题
            printf("len=%u\r\n", q->len);
            for (i = 0; i < q->len; i++) {
                printf("%X ", *((char *)q->payload + i));
            }
            q = q->next;
        }
        printf("\r\n");
    }

    /* 释放缓冲区数据 */
    pbuf_free(p);
}
这个接收回调函数数据回传是对的,但是打印出来的长度和数据都不对
发送:1234567890
接收打印信息:
get msg from 192:168:68:100 port:777:
len=52
3C 52 82 51 3A 6C 0 80 E1 0 0 0 8 0 45 0 0 26 0 35 0 0 FF 11 B1 98 C0 A8 44 44 C0 A8 44 64 22 B0 3 9 0 12 C6 12 31 32 33 34 35 36 37 38 39 30

请教一下是哪里出了问题?


回复

使用道具 举报

该用户从未签到

1

主题

6

帖子

0

蝴蝶豆

初级会员

最后登录
2021-2-1
 楼主| 发表于 2021-2-1 17:12:22 | 显示全部楼层
程序是STM32CUBE生成的,TCP调试没发现这个问题,为啥UDP会出现这个现象呢?
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

6

帖子

0

蝴蝶豆

初级会员

最后登录
2021-2-1
 楼主| 发表于 2021-2-1 17:23:29 | 显示全部楼层
STM32CUBE版本:6.0.1
firmware:STM32Cube FW_F1 V1.8.1
网口芯片:DP83848IVVX
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

6

帖子

0

蝴蝶豆

初级会员

最后登录
2021-2-1
 楼主| 发表于 2021-2-1 17:27:25 | 显示全部楼层
从数据可以看出发送的数据是收到了,但是带了MAC地址和IP地址等一些信息,按理说官方工具生成的代码不应该有问题啊,实在搞不懂哪里出了问题
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-30 01:21 , Processed in 0.148665 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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