ESP8266转ESP32时WiFiUDP::beginMulticast函数匹配错误求助
解决ESP32迁移中WiFiUDP::beginMulticast的函数匹配错误
你的报错根源是ESP8266和ESP32的Arduino核心库对WiFiUDP::beginMulticast的参数要求不一致:
- ESP8266版本需要三个参数:本地IP地址、组播IP地址、端口
- ESP32版本仅需两个参数:组播IP地址、端口
直接修改beginUdpMulticast函数内的调用即可,移除多余的WiFi.localIP()参数:
bool UpnpBroadcastResponder::beginUdpMulticast(){ boolean state = false; Serial.println("Begin multicast .."); // 适配ESP32的函数签名,移除第一个参数WiFi.localIP() if(UDP.beginMulticast(ipMulti, portMulti)) { Serial.print("Udp multicast server started at "); Serial.print(ipMulti); Serial.print(":"); Serial.println(portMulti); state = true; } else{ Serial.println("Connection failed"); } return state; }
修改后重新编译,该函数匹配错误即可解决。后续若遇到其他ESP8266到ESP32的API差异问题,可对照ESP32 Arduino核心库的函数定义调整参数或调用逻辑。
内容的提问来源于stack exchange,提问作者IceBurnHex
相关产品推荐
相关产品推荐

