国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee

 找回密碼
 注冊
搜索

關(guān)于stm32嵌入lwip以太網(wǎng)udp升級傳輸大數(shù)據(jù)包問題

[復(fù)制鏈接]
樓主
coolice 發(fā)表于 2021-8-13 23:52:50 | 只看該作者 |倒序?yàn)g覽 |閱讀模式
問題描述
        使用stm32的以太網(wǎng)嵌入lwip網(wǎng)絡(luò)協(xié)議和pc電腦通訊,主要傳輸升級數(shù)據(jù),涉及到的是fpga數(shù)據(jù),所以量有點(diǎn)大。
        發(fā)現(xiàn)一個問題,每次傳輸只能傳輸12包,到12包之后就沒有收到數(shù)據(jù)包了,這個現(xiàn)象是固定的,也就是根本進(jìn)不了回調(diào)函數(shù)如下函數(shù)
        /******* 這是一個回調(diào)函數(shù),當(dāng)有UDP數(shù)據(jù)收到時會被調(diào)用********/
// addr:筆記本的IP地址(存放向開發(fā)板發(fā)送數(shù)據(jù)的PC的IP地址)
// port:筆記本的端口號(遠(yuǎn)端端口號)

void Udp_Test_Receive(void *arg,struct udp_pcb *pcb,struct pbuf *p,struct ip_addr *addr,u16_t port)
        {}
很是疼痛,網(wǎng)絡(luò)菜鳥,不斷找代碼的Bug,解決問題可就是解決不了。
        經(jīng)過比較發(fā)現(xiàn),在回調(diào)函數(shù)里忘記釋放指針了。
        比較標(biāo)準(zhǔn)的回調(diào)函數(shù)如下

void Udp_Test_Receive(void *arg,struct udp_pcb *pcb,struct pbuf *p,struct ip_addr *addr,u16_t port)
{
    //struct ip_addr destAddr = *addr;
    //unsigned char g_tData[256];
    struct pbuf *p1;
    unsigned char *nptr;           //指向UDP接收緩存區(qū)的指針
    short len;          //接收到的UDP數(shù)據(jù)包長度
    unsigned short LenUpdata = 0;  //升級數(shù)據(jù)包的有效數(shù)據(jù)長度
    if(p != NULL)
    {

        len = p->len;
        len = len;
        nptr = (unsigned char*)p->payload;
  /*************************add your code here***************/
  /*******************************************************/

/**************************************************************************/
     pbuf_free(p);
    }
}


您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

手機(jī)版|小黑屋|ELEOK |網(wǎng)站地圖

GMT+8, 2026-5-26 02:12

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回復(fù) 返回頂部 返回列表