2015-08-05 6 views
0

Я пытаюсь преобразовать некоторые двойные значения в uint8_t String [] (в C) при программировании в Atmel Studio 6.2, чтобы использовать его дальше в функции: usart_write_buffer_job.Как преобразовать двойное значение в uint8_t string [] для печати в окне терминала в atmel studio

И это вся команда, которую я буду использовать дальше, но вместо символов, я хотел бы, чтобы напечатать данные двойные значения на экране:

uint8_t string[] = "Hello World!\n"; 
    usart_write_buffer_job(&usart_instance, string, sizeof(string)); 

Я попытался отливку, но это делает не работает должным образом в Atmel, так как он не признает (uint8_t*)(&MyDoubleValue)

+0

вы ищете [ 'Sprin тс() '] (http://linux.die.net/man/3/sprintf)? –

+0

Почему вы используете массив 'uint8_t', а не массив' char'? И что вы подразумеваете под «не признает»? Пожалуйста, укажите сообщение об ошибке в свой вопрос. –

+0

'usart_write_buffer_job' принимает только const * uint8_t как аргумент, а ошибка говорит, что uint8_t не объявлен. – MRM

ответ

0

Это выглядит как работа для snprintf:

double d; 
char string[50]; 
snprintf(string, 50, "%f", d); 
+0

snprintf не работает в этом случае, так как мне нужна строка uint8_t [] в качестве входного аргумента. В конце концов, идея состоит в том, чтобы напечатать значение как читаемое человеком ascii в терминальном окне. – MRM

+0

'char []' должен быть исключен для 'uint8_t []' без проблем, особенно если это печатная строка ASCII. – dbush

+0

@MRM Забудьте snprintf и используйте простой цикл для копирования значений в массив символов, который вы затем завершите нулем. – this

 Смежные вопросы

  • Нет связанных вопросов^_^