【ESP8266筆記】ESP8266-RTOS-SDK(3.0) 修改IP地址

環境:
設備: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));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章