完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用STM32F407做无操作系统的LWIP 移植,遇到一个问题
一直连接不上网 最开始 rval=ETH_Init( ETH_InitStructure,LAN8720_PHY_ADDRESS); //ÅäÖÃETH if(rval==ETH_SUCCESS)//ÅäÖóɹ¦ { ETH_DMAITConfig(ETH_DMA_IT_NIS|ETH_DMA_IT_R,ENABLE); //ʹÄÜÒÔÌ«Íø½ÓÊÕÖÐ¶Ï } 配置不成功 然后我做了修改 // ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Enable; //¿ªÆôÍøÂç×ÔÊÊÓ¦¹¦ÄÜ ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Disable;//hank 配置成功,但是DHCH老是不成功 然后看打印的信息 netif->output()dhcp_discover: deleting()ing dhcp_discover: SELECTING dhcp_discover(): set request timeout 16000 msecs tcp_slowtmr: no active PCBs 发现是 prev = NULL; pcb = tcp_active_pcbs; if (pcb == NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: no active pcbsn")); } while (pcb != NULL) { LWIP_DEBUGF(TCP_DEBUG, ("tcp_slowtmr: processing active pcbn")); LWIP_ASSERT("tcp_slowtmr: active pcb->state != CLOSEDn", pcb->state != CLOSED); LWIP_ASSERT("tcp_slowtmr: active pcb->state != LISTENn", pcb->state != LISTEN); LWIP_ASSERT("tcp_slowtmr: active pcb->state != TIME-WAITn", pcb->state != TIME_WAIT); if (pcb->last_timer == tcp_timer_ctr) { /* skip this pcb, we have already processed it */ pcb = pcb->next; continue; } 这里问题,然后调试,发现很奇怪 编程软件之后 tcp_active_pcbs 就为0 了 所以程序就出错了 但是 这是个结构体 struct tcp_pcb *tcp_active_pcbs; 指针怎么会是0呢 而且程序编译后,tcp_active_pcbs 就为0 但是把 tcp_active_pcbs 放到WATCH窗口里又能看到数据 我用原子的例子程序编译也是同样的结果 我查看MAP 文件 这些代码是在 TCP.C 文件里 MAP 里有给TCP.C 分配位置 0x200000c9 COMPRESSED 0x00000003 PAD 0x200000cc COMPRESSED 0x00000004 Data RW 1542 .data raw.o 0x200000d0 COMPRESSED 0x00000024 Data RW 1564 .data tcp.o 0x200000f4 COMPRESSED 0x00000020 Data RW 1590 .data tcp_in.o 0x20000114 COMPRESSED 0x0000000c Data RW 1628 .data timers.o 0x20000120 COMPRESSED 0x00000008 Data RW 1645 .data udp.o 0x20000128 COMPRESSED 0x00000012 Data RW 1727 .data ip.o 不知道哪位大侠知道是什么原因么 |
|
相关推荐
1个回答
|
|
1。不正确的硬件或接线:仔细检查硬件设置和接线连接,以确保它们是正确的。
2.配置不正确:请确保代码中正确设置了以太网配置(如MAC地址、IP地址、子网掩码、网关)。3.PHY初始化:验证PHY初始化是否为您的特定LAN8720 PHY正确配置。检查PHY地址和初始化顺序。 4.时钟配置:确保在STM32F407 MCU中正确配置以太网外围设备和相关时钟。 5.中断处理:检查以太网中断处理代码是否正确执行,包括中断的正确初始化和启用。 6.数据包处理:确保LWIP配置和数据包处理例程正确执行。验证是否正确处理了接收到的数据包。 7.以太网电缆或交换机:确保以太网电缆或开关正常工作。请尝试使用其他电缆或连接到其他交换机。 8.调试:利用任何可用的调试功能,如UART打印语句或调试工具,深入了解问题并识别潜在问题。建议提供更具体的详细信息,包括代码片段和错误消息,以帮助确定连接问题的确切原因。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1618 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1545 浏览 1 评论
979 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
683 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1597 浏览 2 评论
1865浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
647浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
517浏览 3评论
534浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
506浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 06:36 , Processed in 0.668356 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号