STM32无操作系统UDP接收不到数据 帮忙看看吧

2019-07-20 14:41发布

主函数是这样子的
int main(void)
{

  /* USER CODE BEGIN 1 */
        struct udp_pcb *Udp_pcb;
        err_t err;
  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART3_UART_Init();
  MX_LWIP_Init();  /

  /* USER CODE BEGIN 2 */
        udp_init();
        Udp_pcb=udp_new();    //建立一个PCB模块
                err=udp_bind(Udp_pcb,IP_ADDR_ANY,8080);//绑定本地IP和端口
                        udp_recv(Udp_pcb,udp_receive_callback,NULL);       
       
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */       
                MX_LWIP_Process(); //有数据进来就放入pbuf...

  }
  /* USER CODE END 3 */

}

接收回调函数为
void udp_receive_callback(void *arg,struct udp_pcb *upcb,struct pbuf *p,const ip_addr_t *addr,uint16_t port)
{
        printf("here ");
        ip_addr_t destAddr = *addr;
        if(p != NULL)
        {
                udp_sendto(upcb,p,&destAddr,port);  //回传数据
                pbuf_free(p);
        }
       
}

然后用单片机多功能调试助手能连接和发送,不能收到回传数据,改其他端口,居然也能打开,瞬间崩溃,用printf跟踪,程序并没运行到udp_receive_callback,请问是哪里的问题啊,感谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。