环境:
设备: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));