天线|RF射频
直播中

贾佳斌

8年用户 222经验值
私信 关注
[问答]

stm32f207移植lwip这段检测数据包的程序执行了怎样的一个过程?

[C] 纯文本查看 复制代码
/**  * @brief  This function polls for a frame reception  * @param  None  * @retval Returns 1 when a frame is received, 0 if none.  */uint32_t ETH_CheckFrameReceived(void){   /* check if last segment */  if(((DMARxDescToGet->Status & ETH_DMARxDesc_OWN) == (uint32_t)RESET) &&     ((DMARxDescToGet->Status & ETH_DMARxDesc_LS) != (uint32_t)RESET))     {         DMA_RX_FRAME_infos->LS_Rx_Desc = DMARxDescToGet;      DMA_RX_FRAME_infos->Seg_Count++;      return 1;    }      /* check if first segment */    else if(((DMARxDescToGet->Status & ETH_DMARxDesc_OWN) == (uint32_t)RESET) &&     ((DMARxDescToGet->Status & ETH_DMARxDesc_FS) != (uint32_t)RESET)&&     ((DMARxDescToGet->Status & ETH_DMARxDesc_LS) == (uint32_t)RESET))          {      DMA_RX_FRAME_infos->FS_Rx_Desc = DMARxDescToGet;      DMA_RX_FRAME_infos->LS_Rx_Desc = NULL;      DMA_RX_FRAME_infos->Seg_Count = 1;         DMARxDescToGet = (ETH_DMADESCTypeDef*) (DMARxDescToGet->Buffer2NextDescAddr);    }        /* check if intermediate segment */     else if(((DMARxDescToGet->Status & ETH_DMARxDesc_OWN) == (uint32_t)RESET) &&     ((DMARxDescToGet->Status & ETH_DMARxDesc_FS) == (uint32_t)RESET)&&     ((DMARxDescToGet->Status & ETH_DMARxDesc_LS) == (uint32_t)RESET))    {      (DMA_RX_FRAME_infos->Seg_Count) ++;      DMARxDescToGet = (ETH_DMADESCTypeDef*) (DMARxDescToGet->Buffer2NextDescAddr);    }     return 0;}在网络调试助手 UDP 中 会发送一个数据 立马收到一样的一个数据 怎么办到的?

回帖(4)

孔喆

2019-8-14 06:20:35
帮顶。。。。
举报

贾埃罗

2019-8-14 06:38:03
LZ查看手册中的855页RDES0寄存器,其实手册中也有详细讲解。
举报

李捷

2019-8-14 06:51:20
void LwIP_Pkt_Handle(void)
{
  /* Read a received packet from the Ethernet buffers and send it to the lwIP for handling */
  ethernetif_input(&netif);
}    这个事处理程序吧。。进去我就出不来了
图里是说一个指向储存地区的指针吗?
举报

李大帅

2019-8-14 07:06:58
自己看哪里死机了吧
举报

更多回帖

发帖
×
20
完善资料,
赚取积分