完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在编译 MicroPython 的时候,在 networl_lan.c 文件中遇到了一个错误,没有找到 esp_eth_mac_new_esp32 函数,编译器提示可以用 esp_eth_mac_new_w5500 此类函数代替,但是感觉还是有问题。
MicroPython 官方给出的是必须是 IDF4.1 以上的版本才可以,但我这个版本应该是比较新的了,依然找不到这个函数。 因为后面还有其他代码,所有不可能用 esp_eth_mac_new_w5500 替代,请问应该如何解决? Code: Select all eth_mac_config_t mac_config = ETH_MAC_DEFAULT_CONFIG(); mac_config.smi_mdc_gpio_num = self->mdc_pin; mac_config.smi_mdio_gpio_num = self->mdio_pin; esp_eth_mac_t *mac = esp_eth_mac_new_esp32(&mac_config); eth_phy_config_t phy_config = ETH_PHY_DEFAULT_CONFIG(); phy_config.phy_addr = self->phy_addr; phy_config.reset_gpio_num = self->phy_power_pin; self->phy = NULL; switch (args[ARG_phy_type].u_int) { case PHY_LAN8720: self->phy = esp_eth_phy_new_lan8720(&phy_config); break; case PHY_IP101: self->phy = esp_eth_phy_new_ip101(&phy_config); break; case PHY_RTL8201: self->phy = esp_eth_phy_new_rtl8201(&phy_config); break; case PHY_DP83848: self->phy = esp_eth_phy_new_dp83848(&phy_config); break; case PHY_W5500: self->phy = esp_eth_phy_new_w5500(&phy_config); break; case PHY_DM9051: self->phy = esp_eth_phy_new_dm9051(&phy_config); break; case PHY_KSZ8851SNL: self->phy = esp_eth_phy_new_ksz8851snl(&phy_config); break; case PHY_KSZ8041: #if ESP_IDF_VERSION_MINOR >= 3 // KSZ8041 is new in ESP-IDF v4.3 self->phy = esp_eth_phy_new_ksz8041(&phy_config); break; #endif default: mp_raise_ValueError(MP_ERROR_TEXT("unknown phy")); } 以上这段是 MicroPython 给出的代码 |
|
相关推荐
1个回答
|
|
在这种情况下,我们可以尝试以下步骤来解决问题:
1. 确认ESP-IDF版本:首先,请确保您正在使用的ESP-IDF版本确实高于4.1。您可以通过在命令行中输入`git tag`来查看当前ESP-IDF的版本。 2. 更新ESP-IDF:如果您的ESP-IDF版本低于4.1,请更新到最新版本。您可以通过以下命令来更新ESP-IDF: ``` cd $HOME/esp/esp-idf git pull git checkout v4.4 git submodule update --init --recursive ``` 3. 检查esp_eth_mac_new_esp32函数:在更新ESP-IDF后,检查`esp_eth_mac_new_esp32`函数是否存在。您可以在ESP-IDF的源代码中搜索该函数,或者在ESP-IDF的文档中查找相关信息。 4. 替代方案:如果`esp_eth_mac_new_esp32`函数确实不存在,您可以尝试使用其他替代方案。根据您提供的信息,编译器提示可以使用`esp_eth_mac_new_w5500`作为替代。虽然这可能不是最佳解决方案,但在某些情况下,它可能会解决问题。您可以尝试使用这个替代方案,并查看是否能够成功编译。 5. 寻求帮助:如果以上步骤都无法解决问题,您可以在MicroPython社区或者ESP-IDF社区寻求帮助。在这些社区中,您可以找到其他开发者可能已经遇到过类似问题,并获得了解决方案。 6. 考虑其他方案:如果问题仍然无法解决,您可能需要考虑其他方案,例如使用不同的网络库或者修改您的代码以适应当前的ESP-IDF版本。 总之,首先确保您的ESP-IDF版本是最新的,然后尝试使用替代方案或者寻求社区的帮助。希望这些建议能帮助您解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
968 浏览 1 评论
553浏览 6评论
463浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
447浏览 5评论
448浏览 4评论
418浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 08:51 , Processed in 0.826175 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号