Как я могу преобразовать uint32_t в тип char *

Здравствуйте, я использую Arduino UNO со щитом adafruit для отображения значений оценок, но функция, используемая для отображения результатов, принимает только значения char *, а сама оценка может занимать до 6 цифр (от 000 000 до 999 999). Я пытался использовать sprint (), но мне не повезло, так как экран будет мерцать как сумасшедший. Я полагаю, что проблема заключается в том, что символы содержат только определенное количество байтов, которые не могут вместить 32-битное целое число, но я думаю, что это способ обойти это. рисование текста — это функция, используемая щитом для рисования материала на экране с вводом символов char *, цветового кода, размера, x pixel, y pixel. если кто-нибудь может помочь мне перейти между этими двумя типами, пожалуйста, дайте мне знать. также, если их альтернативы, которые также помогли бы мне.

мой код:

char* textToWrite;
uint32_t currentScore = 0;
uint32_t highScore = 0;
highScore = currentScore;
sprintf(textToWrite,"%d.%d.%d.%d\0", currentScore);//sprint f not working properly right now
drawText(textToWrite, ST7735_WHITE, 1, 100, 10);

я также пытался использовать:

sprintf(textToWrite,"%u", currentScore);

5

Решение

char textToWrite[ 16 ];
uint32_t currentScore = 42;
// as per comment from LS_dev, platform is int 16bits
sprintf(textToWrite,"%lu", currentScore);
7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]