完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
故障现象 在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客户端和服务器端的例程供参考以便查原因。 |
|
相关推荐
1个回答
|
|
在STM32CubeMX 4.26版本下,TCP和UDP客户端和服务器端不能正常工作的原因可能有以下几点:
1. 配置问题:请确保在CubeMX中正确配置了网络接口、LWIP、FreeRTOS等选项。检查是否启用了TCP和UDP协议,并确保网络接口的配置与硬件平台相匹配。 2. PHY芯片问题:确保DP83848 PHY芯片与STM32F407ZGT6的以太网接口兼容,并且已正确配置。检查PHY芯片的初始化代码是否正确。 3. 网络连接问题:请检查硬件连接,确保以太网线、路由器等设备正常工作。尝试使用其他设备连接同一网络,以排除网络问题。 4. 驱动问题:确保已正确配置并初始化以太网驱动。检查STM32的以太网驱动代码,确保所有必要的初始化步骤都已完成。 5. LWIP配置问题:检查LWIP配置文件(如lwipopts.h),确保已启用所需的功能,如TCP、UDP等。 6. FreeRTOS配置问题:检查FreeRTOS的配置,确保任务调度、内存管理等设置正确。 7. 用户代码问题:检查用户代码中是否有错误,如错误的网络接口初始化、错误的套接字创建和绑定等。 8. 中断和DMA配置:确保已正确配置以太网中断和DMA,以便正确处理网络数据包。 9. 调试和日志:在用户代码中添加调试日志,以便在出现问题时追踪错误。使用STM32的调试工具(如ST-LINK)逐步执行代码,查找问题所在。 10. 示例代码问题:如果您使用的是官方示例代码,请确保示例代码与您的硬件平台和软件配置兼容。 建议您按照上述步骤逐一排查问题,找出导致TCP和UDP客户端和服务器端不能正常工作的原因。如果问题仍然存在,您可以尝试寻求STM32社区或官方技术支持的帮助。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1752 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1611 浏览 1 评论
1052 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1666 浏览 2 评论
1926浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
711浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
560浏览 3评论
583浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
544浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 13:30 , Processed in 0.865227 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号