Как преобразовать массив символов в строку в arduino?
Я хочу преобразовать массив символов const в PROGMEM в строку. Как мне это сделать?
const char charArray[] PROGMEM = "Some text";
@Mohamad_Frm, 👍2
Обсуждение1 ответ
Лучший ответ:
▲ 5
вы можете использовать приведение к __FlashStringHelper
для вызова правильного конструктора класса String. Это конструктор, который копирует массив символов из PROGMEM. __FlashStringHelper
предназначен в качестве возвращаемого типа для макроса F ().
const char charArray[] PROGMEM = "Some text";
void setup() {
Serial.begin(115200);
String s((const __FlashStringHelper*) charArray);
Serial.println(s);
}
void loop() {
}
,
@Juraj
Это верно, но как это сделать в цикле или других функциях?, @Mohamad_Frm
PROGMEM всегда глобален. и setup () - это такая же функция, как и все остальные, таким же образом, @Juraj
Абсолютно, но когда я напишу этот код в цикле, компилятор выдаст эту ошибку: конфликтующее объявление "Строка s", @Mohamad_Frm
Большое спасибо. Ошибка компилятора произошла из-за другой части моего скетча., @Mohamad_Frm
Смотрите также:
- C++ против языка Arduino?
- ошибка: ожидаемое первичное выражение перед токеном ','
- Ввести идентификатор чипа ESP32 в строковую переменную (новичок в Arduino/C++)
- Передача функции-члена класса в качестве аргумента
- Улучшенное циклическое переключение цветов RGB.
- Какие есть другие IDE для Arduino?
- Несовместимые типы при назначении «uint8_t {aka unsigned char}» на «uint8_t [1] {aka unsigned char [1]}»
- Каково отношение файла Arduino .ino к main.cpp?
Если вы имеете в виду строку в стиле C++, я думаю, вам просто нужно это сделать - https://stackoverflow.com/questions/8960087/how-to-convert-a-char-array-to-a-string, @Tri
Нет, я хочу преобразовать это в Arduino-IDE. Это неправильно работает!, @Mohamad_Frm
Я просто увидел ответ и понятия не имел, что это вообще возможно. Я думаю, что это ваш ответ., @Tri
К сожалению, это не работа. Однако спасибо вам., @Mohamad_Frm
что это значит? "это не работа" .... это утверждение не содержит полезной информации .... описание фактической ошибки помогло бы, @jsotola