Сохранить версию:
char* tmpStr = (char*) malloc(packet.length() + 1);
memcpy(tmpStr, packet.data(), packet.length());
tmpStr[packet.length()] = '\0'; // ensure null termination
String testString = String(tmpStr);
free(tmpStr); // Strign(char*) creates a copy so we can delete our one
Следующее должно работать , если данные пакета терминированы:
String testString = String( (char*) packet.data());
Это возможно, потому что unit8_t * по сути то же самое, что и char *, но компилятор не может выполнить это преобразование самостоятельно, поэтому вам нужно выполнить явное приведение. Тогда можно использовать конструктор String (char *) .