你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
SKYLANGZI 提问时间:2018-9-18 11:12 /

故障现象 在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客户端和服务器端的例程供参考以便查原因。





收藏 评论2 发布时间:2018-9-18 11:12

举报

2个回答
hpdell 回答时间:2018-10-3 15:46:29
需要对照一下历程,对比看看问题出在哪里
SKYLANGZI 回答时间:2019-2-26 20:01:09
没人回答吗。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版