完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
编译环境:idf4.3
设置方法:使用例程中protocol_examples_common共用联网组件 设置方法如下: 在上述组件connect.c文件的Code: Select all static esp_netif_t *eth_start(void) 函数中添加以太网连接回调函数:Code: Select all ESP_ERROR_CHECK(esp_event_handler_register(ETH_EVENT, ETHERNET_EVENT_CONNECTED, &on_eth_ipv4_event, netif)); 回调函数如下:Code: Select all static void on_eth_ipv4_event(void *esp_netif, esp_event_base_t event_base, int32_t event_id, void *event_data){ static int set_up= 0 ; switch (event_id) { case ETHERNET_EVENT_CONNECTED: if(set_up == 0) { set_up= 1; tcpip_adapter_dhcpc_stop(TCPIP_ADAPTER_IF_ETH); tcpip_adapter_ip_info_t eth; eth.ip.addr = ipaddr_addr("10.10.10.172"); eth.netmask.addr = ipaddr_addr("255.255.255.0"); eth.gw.addr=ipaddr_addr("10.10.10.1"); tcpip_adapter_set_ip_info(TCPIP_ADAPTER_IF_ETH, ð); } break; default: break; }} ip可以设置成功,但是注册的两个事件:ETHERNET_EVENT_CONNECTED和IP_EVENT_ETH_GOT_IP 却在频繁调用回调事件,这正常吗?应该如何正确设置固定IP |
|
相关推荐
1个回答
|
|
在ESP-IDF 4.3环境中,要为以太网接口设备设置固定IP,您可以按照以下步骤操作:
1. 首先,确保您已经创建了一个ESP-IDF项目,并在项目中包含了`protocol_examples_common`组件。 2. 打开`protocol_examples_common`组件中的`connect.c`文件。 3. 在`connect.c`文件中找到`eth_start`函数,该函数用于初始化以太网接口。在这个函数中,您需要添加一个回调函数,以便在以太网连接建立时设置固定IP。 4. 在`eth_start`函数中添加以下代码以注册以太网连接回调函数: ```c ESP_ERROR_CHECK(esp_event_handler_register(ETH_EVENT, ETHERNET_EVENT_CONNECTED, &on_eth_ipv4_event, netif)); ``` 5. 接下来,创建一个新的回调函数`on_eth_ipv4_event`,该函数将在以太网连接建立时被调用。在这个函数中,您可以设置固定的IP地址。以下是回调函数的示例: ```c static void on_eth_ipv4_event(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data) { esp_netif_t *netif = (esp_netif_t *)arg; esp_netif_ip_info_t ip; // 设置固定的IP地址 strcpy(ip.ip.addr, "192.168.1.100"); strcpy(ip.netmask, "255.255.255.0"); strcpy(ip.gw, "192.168.1.1"); // 应用固定的IP地址 esp_netif_set_ip_info(netif, &ip); } ``` 请根据您的网络环境修改IP地址、子网掩码和网关地址。 6. 最后,确保您的项目配置文件(例如`sdkconfig`)中已经启用了以太网支持。您可以在`sdkconfig`文件中找到以下选项并确保它们被设置为`y`: ``` CONFIG_ETH_USE_SPI_ETHERNET_MODULE CONFIG_ETH_SPI_ETHERNET_MODULE_NAME="DM9051" ``` 7. 编译并烧录您的项目到ESP32开发板。 8. 重启设备,以太网接口应该会自动连接并使用您设置的固定IP地址。 通过以上步骤,您应该能够在ESP-IDF 4.3环境中为以太网接口设备设置固定IP地址。 |
|
|
|
只有小组成员才能发言,加入小组>>
1030 浏览 1 评论
562浏览 6评论
470浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
454浏览 5评论
454浏览 4评论
428浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 01:16 , Processed in 0.781502 second(s), Total 50, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号