Преобразование строки в const unsigned char
String abc ="0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff";
const unsigned char displaydata={reinterpret_cast<const unsigned char*>(abc.c_str())};
display.drawBitmap(displaydata, startX, startY, bmpWidth, bmpHeight, GxEPD_WHITE);
Получить ошибку: недопустимое преобразование из 'const unsigned char' в 'unsigned char' [-fpermissive]*
Когда я пишу вот так
String abc ="0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff";
display.drawBitmap(reinterpret_cast<const unsigned char*>(abc.c_str()), startX, startY, bmpWidth, bmpHeight, GxEPD_WHITE);
Нет ошибки, но черный экран без изображения на дисплее
Когда я пишу вот так
const unsigned char displaydata[]={ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
display.drawBitmap(displaydata, startX, startY, bmpWidth, bmpHeight, GxEPD_WHITE);
Это работает
Строковые данные, поступающие с сервера, возвращаются ко мне в виде перемешивания, я пытаюсь отразить их на экране. Я хочу преобразовать строковые данные в unsigned char с кодом
Поэтому я пытаюсь обратить
@Coder06, 👍0
Обсуждение1 ответ
Эта строка буквально состоит из символов 0xff ... в то время как массив-это байты 0xff...
Если строка содержит 4 байта,чтобы сказать 0,x,f, f (за которыми следуют запятая и пробел), массив будет иметь 1 байт 255 (и не нужно разделять запятую или пробел).
Если вы хотите преобразовать текстовую шестнадцатеричную строку в байты, посмотрите комбинацию Способов преобразования шестнадцатеричной строки в массив байтов? и петляла по веревочке.
- Какие микроконтроллеры Arduino могут управлять параллельным 8-битным дисплеем ILI9341 с разрешением 320x240@60fps с прямым доступом к памяти, дополнительным ядром ЦП или и тем, и другим, и как?
- ESP32 FREERTOS сбой при использовании Adafruit ST7789 в задачах с включенным Wi-Fi
- LILYGO TTGO T-Display не может обнаружить акселерометр, гироскоп и датчик температуры MPU 6050
- Как отображать текст на OLED?
- ESP32 WROOM 32 Проблемы с SPI EMF
- Какие форматы изображений принимаются для дисплеев?
- WS2812b - Интерполировать пиксели на неопиксельной матрице с маской
- Как отображать переменные на 0,96-дюймовом OLED-дисплее с библиотекой u8glib?
Как именно сервер предоставляет вам двоичные данные? Пожалуйста, укажите пример строки из ответа сервера на запрос. Это действительно в формате вашей первой строки?, @chrisl
С помощью
const unsigned char displaydata={reinterpret_cast<const unsigned char*>(...
вы назначаете указатель на один символ. Или, что более важно, *часть* указателя на символ, который, если бы адрес памяти (значение указателя) был больше 0xFF, был бы довольно бесполезен. Итак, проблемы начинаются здесь с отсутствующего декларатора указателя (a*
). В этом вопросе не так уж много Arduino. Довольно прямо вопрос C++, если только я чего-то не упускаю., @timemageString
- это пользовательский класс Arduino, поэтому он может быть классифицирован как вопрос arduino (каламбур) по этому достоинству., @MajenkoШаг первый: Разделите строку на куски, используя разделитель запятой. Шаг Б: преобразуйте каждый фрагмент из его текстового представления в числовое значение. Шаг Дельта: поместите это значение в массив. Шаг 0: забудьте "const", это не имеет значения., @Majenko
@Majenko, я не чувствовал себя достаточно сильно по этому поводу, чтобы закрыть голосование., @timemage