STM32F407+dp83848利用UDP协议一次最多能发送多少数据?

2019-07-20 03:59发布

请教一下各位大侠,问题已经困扰我很久了,。。。
移植原子的程序,想测试一下网口的速度,想法是通过网络调试助手,发送一个指令如0xeb90,然后STM32通过网口返回大量数据,然后算出速度。。。。。
看很多资料说如果要发送大量数据的话,可以利用PBUF_POOL类型的Pbuf,然后多个这种类型的pbuf组成pbuf链,要发送的数据包分配到这个链的每个pbuf的payload指向的数据处,原理如图


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
24条回答
刺客mfl
2019-07-20 18:08
程序     ptr=pbuf_alloc(PBUF_TRANSPORT,1024,PBUF_POOL); //申请内存
? 申请了1024个字节的内存
?每个pbuf的大小修改为#define BUF_POOL_BUFSIZE       512 + 54
?也就是链的第一个数据有效存储数据区域的大小为512个字节,但是不管是用ptr->payload=(void*)buffer2;(buffer2是我定义的一个数组,   for(ts=0;ts<2048;ts++)
    {
        buffer2[ts] =ts;  //预存数组数据
    })
 还是调用pbuf_take(struct pbuf *buf, const void *dataptr, u16_t len),数据只能存在第一个payload指向的数据区,链表中的第二个pbuf的payload指向的地址处根本没有任何数据。申请内存是用的pbuf_alloc()函数没有加任何修改,因为我看到这个函数就是建了一个有两个pbuf的pbuf链,请教大侠这是什么原因,怎么才能把数据放到第二个pbuf的payload指向的区域

一周热门 更多>