cannot convert 'std::string' to 'String'

Boards Manager 中将 Arduino ESP32 板软件更改为版本 3.x 则会出现该问题。这是新版本(C++ STL)的STRING 转换为 (Arduino WString)出现的问题。
 

解决方法(两种):

ESP32 Boards Manager回退版本 2.0.17,可以正确编译和运行。

 

将std::string改为String (如果源码中含有std::string(deviceName).substr(0, 15)等用法,则直接使用deviceName,即 deviceName(std::string(deviceName).substr(0, 15))改为 deviceName(deviceName),.h文件也别忘了改哦)

 
老实说很不建议使用arduino String,尽量用char
posted @ 2025-03-16 15:54  mcwhirr  阅读(65)  评论(0)    收藏  举报