【ESP8266笔记】ESP8266-RTOS-SDK(3.0) 修改IP地址

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/oxp7085915/article/details/84864877

环境:
设备:ESP8266-12F
SDK: ESP8266-RTOS-SDK 3.0

在ESP8266 RTOS SDK中已SoftAp方式创建AP热点,默认的IP地址为192.168.4.1,如果将IP地址修改为自定义的地址段,可以通过以下两种方式设置:

  • 修改SDK
    在tcpip_adapter_init()函数中修改IP地址段
void tcpip_adapter_init(void)
{
    if (tcpip_inited == false) {
        tcpip_inited = true;
        tcpip_init(NULL, NULL);

        memset(esp_ip, 0, sizeof(tcpip_adapter_ip_info_t)*TCPIP_ADAPTER_IF_MAX);
        memset(esp_ip_old, 0, sizeof(tcpip_adapter_ip_info_t)*TCPIP_ADAPTER_IF_MAX);
	//在这里修改IP地址
        IP4_ADDR(&esp_ip[TCPIP_ADAPTER_IF_AP].ip, 192, 168 , 121, 1);
        IP4_ADDR(&esp_ip[TCPIP_ADAPTER_IF_AP].gw, 192, 168 , 121, 1);
        IP4_ADDR(&esp_ip[TCPIP_ADAPTER_IF_AP].netmask, 255, 255 , 255, 0);

        dhcp_check_timer = wifi_timer_create("check_dhcp", wifi_task_ms_to_ticks(500), true, NULL, tcpip_adapter_dhcpc_done);
        if (!dhcp_check_timer) {
            ESP_LOGI(TAG, "TCPIP adapter timer create error");
        }
    }
}

  • 调用API修改
	//关闭DHCP
	ESP_ERROR_CHECK(tcpip_adapter_dhcps_stop(TCPIP_ADAPTER_IF_AP));
	//填充结构体tcpip_adapter_ip_info_t
	IP4_ADDR(&tcpip_adapter_ip_info.ip, 192,168,121,1);
	IP4_ADDR(&tcpip_adapter_ip_info.gw, 192,168,121,1);
	IP4_ADDR(&tcpip_adapter_ip_info.netmask, 255,255,255,0);
	//设置IP地址
	ESP_ERROR_CHECK(tcpip_adapter_set_ip_info(TCPIP_ADAPTER_IF_AP,&tcpip_adapter_ip_info));
	//启动dhcp
	ESP_ERROR_CHECK(tcpip_adapter_dhcps_start(TCPIP_ADAPTER_IF_AP));
展开阅读全文

没有更多推荐了,返回首页