搜索
查看: 1331|回复: 2

[求助] stm32cubemx4.26版本下tcp udp 客户端和服务器端均不能工作。

[复制链接]

该用户从未签到

2

主题

4

帖子

0

蝴蝶豆

初级会员

最后登录
2019-2-27
发表于 2018-9-18 11:12:56 | 显示全部楼层 |阅读模式

故障现象 在netcon下 TCP客户端或服务器端程序均不能正常工作。

硬件平台EVA-407
PHY:DP83848
软件平台:stm32Cubemx


LWIP  2.0版

FREERTOS


我在stm32CubeMx 在针脚配置中

选定如下功能



lwip及 freertos 均用默认配置
产生代码并编译后,
自已编写如下用户代码 这是参照以往的官方例程


int main(void)
{
    /* USER CODE BEGIN 1 */
    /* USER CODE END 1 */
    /* MCU Configuration----------------------------------------------------------*/
    /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    HAL_Init();
    /* USER CODE BEGIN Init */
    /* USER CODE END Init */
    /* Configure the system clock */
    SystemClock_Config();
    /* USER CODE BEGIN SysInit */
    /* USER CODE END SysInit */
    /* Initialize all configured peripherals */
    MX_GPIO_Init();
    /* USER CODE BEGIN 2 */
    /* init code for LWIP */
   MX_LWIP_Init();
    /* Initialize tcp echo server */
    tcpecho_init();
    /* USER CODE END 2 */
    /* USER CODE BEGIN RTOS_MUTEX */
    /* add mutexes, ... */
    /* USER CODE END RTOS_MUTEX */
    /* USER CODE BEGIN RTOS_SEMAPHORES */
    /* add semaphores, ... */
    /* USER CODE END RTOS_SEMAPHORES */
    /* USER CODE BEGIN RTOS_TIMERS */
    /* start timers, add new ones, ... */
    /* USER CODE END RTOS_TIMERS */
    /* Create the thread(s) */
    /* definition and creation of defaultTask */
    osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
    defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);
    /* USER CODE BEGIN RTOS_THREADS */
    /* add threads, ... */
    /* USER CODE END RTOS_THREADS */
    /* USER CODE BEGIN RTOS_QUEUES */
    /* add queues, ... */
    /* USER CODE END RTOS_QUEUES */

    /* Start scheduler */
    osKernelStart();
    /* We should never get here as control is now taken by the scheduler */
    /* Infinite loop */
    /* USER CODE BEGIN WHILE */
    while (1)
    {
        /* USER CODE END WHILE */
        /* USER CODE BEGIN 3 */
    }
    /* USER CODE END 3 */
}




static void tcpecho_thread(void *arg)
{
    struct netconn *conn, *newconn;
    err_t err;
    LWIP_UNUSED_ARG(arg);
    /* Create a new connection identifier. */
    conn = netconn_new(NETCONN_TCP);
    if (conn!=NULL)
    {
        /* Bind connection to well known port number 7. */
        err = netconn_bind(conn, NULL, 8080);
        if (err == ERR_OK)
        {
            /* Tell connection to go into listening mode. */
            netconn_listen(conn);
            while (1)
            {
                /* Grab new connection. */
                 err= netconn_accept(conn,&newconn);
                /* Process the new connection. */
                if (newconn)
                {
                    struct netbuf *buf;
                    void *data;
                    u16_t len;
                    while ((err = netconn_recv(newconn,&buf)) != NULL)
                    {
                        do
                        {
                            netbuf_data(buf, &data, &len);
                            netconn_write(newconn, data, len, NETCONN_COPY);
                        }
                        while (netbuf_next(buf) >= 0);
                        netbuf_delete(buf);
                    }
                    /* Close connection and discard connection identifier. */
                    netconn_close(newconn);
                    netconn_delete(newconn);
                }
            }
        }
        else
        {
            printf(" can not bind TCP netconn");
        }
    }
    else
    {
        printf("can not create TCP netconn");
    }
}
/*-----------------------------------------------------------------------------------*/
void tcpecho_init(void)
{
    sys_thread_new("tcpecho_thread", tcpecho_thread, NULL, DEFAULT_THREAD_STACKSIZE, tskIDLE_PRIORITY + 3);
}


运行后用网络调试助手可以连接上开发板,但数据回送。
如果我将开发板开成TCP的客户端 ,则无法联上服务器。
ping 开发板的92.168.1.10是可以ping通的。

我查不到原因,希望能得到指 导,或都是有stm32Cubemx4.26版本下的tcp客户端和服务器端的例程供参考以便查原因。





回复

使用道具 举报

该用户从未签到

227

主题

828

帖子

32

蝴蝶豆

金牌会员

最后登录
2021-1-15
发表于 2018-10-3 15:46:29 | 显示全部楼层
需要对照一下历程,对比看看问题出在哪里
回复 支持 反对

使用道具 举报

该用户从未签到

2

主题

4

帖子

0

蝴蝶豆

初级会员

最后登录
2019-2-27
 楼主| 发表于 2019-2-26 20:01:09 | 显示全部楼层
没人回答吗。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-4-19 15:17 , Processed in 0.185305 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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