Вам нужно сначала преобразовать числовые данные (например, uint8_t
) в строку , прежде чем вы сможете их отобразить.
Например, значение uint8_t
123
составляет один байт, но для его отображения его необходимо преобразовать в трехбайтовую / байтную строку 1
, 2
, 3
, т. Е. Три char
с 0x31, 0x32, 0x33.
Для этого вы можете использовать функцию itoa()
("integer to ascii"), чтобы скопировать целочисленное значение в предоставленный вами массив char
. Обратите внимание, что массив char
должен быть достаточно большим, чтобы вместить любую возможную числовую строку, т. Е. Если ваши значения uint8_t
(диапазон 0 ... 255), массив должен быть длиной не менее трех символов.
Чтобы массив символов обрабатывался как строка в C (-libraries), вам нужен дополнительный char
для хранения ограничителя строки '\0'
.
* +1025 * Пример:
char tempStr[3+1]; // One extra for terminator
// Clear tempStr and make sure there's always a string-terminating `\0` at the end
for ( uint8_t i = 0; i < sizeof(tempStr); i++ ) {
tempStr[i] = '\0';
}
itoa(temperature, tempStr, 10);
// Now we have the string representation of temperature in tempStr, followed by at least one '\0' to make it a valid string.
// For example:
// 1 --> [ '1', '\0', '\0', '\0' ]
// 255 --> [ '2', '5', '5', '\0' ]