OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 352|回复: 0

freertos消息队列+udp接收指令第二次被卡死。

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
5
金钱
5
注册时间
2026-9-4
在线时间
0 小时
发表于 2026-9-7 09:51:55 | 显示全部楼层 |阅读模式
/* USER CODE END Header_UDP_Recv_Task */
void UDP_Recv_Task(void *argument)
{
        /* init code for LWIP */
        MX_LWIP_Init();
        /* USER CODE BEGIN UDP_Recv_Task */
        struct netbuf *udp_rx_buf = NULL;
        err_t err;
        udp_command_t udp_data_buf;

        memset((uint8_t *)&parameter, 0, sizeof(para_t));
        udp_conn = netconn_new(NETCONN_UDP);
        netconn_bind(udp_conn, IP_ADDR_ANY, UDP_PORT_LOCAL);//绑定本机端口
        /* Infinite loop */
        for(;;)
        {
        //阻塞等待UDP数据包
                  err = netconn_recv(udp_conn, &udp_rx_buf);
                  if (err == ERR_OK)
                        {               
                                  if (UDP_COMMAND_LENGTHS == netbuf_len(udp_rx_buf))
                                  {
                                            memcpy((uint8_t *)&udp_data_buf, (uint8_t *)udp_rx_buf->p->payload, UDP_COMMAND_LENGTHS);
                                      //投递到业务队列
                                      osMessageQueuePut(UDP_Command_QueueHandle, &udp_data_buf, 0, 0U);
                                               
                                                  memset((uint8_t *)&udp_data_buf, 0, UDP_COMMAND_LENGTHS);
                                        }
          //释放缓存
          netbuf_delete(udp_rx_buf);
          udp_rx_buf = NULL;                                       
                        }
      else
      {
                            osDelay(2);
                        }                               
  }


  哪位大侠,帮看看上面的代码中的消息队列哪里有问题?我第一次发送udp指令没有问题,第二次发送指令就被消息队列put函数卡死。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-9-19 04:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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