Я настроил UART Atmel ARM Cortex M0 для печати строк и целых чисел на консоли, используя стандартную функцию C printf() в Atmel studio 7.
Случай I
Я пытаюсь сделать тип функции printf() для печати значений с плавающей запятой, и для этого я выполнил следующие предложения:
arm-none-eabi-gcc : Печать числа с плавающей запятой с использованием printf< /а>
а позже я редактировал/добавлял флаги компоновщика, следующие за текстами отдельно в разное время:
-lc -u _printf_float
-lc -lrdimon -u _printf_float
Случай 2
Хотя я не мог понять всего, что они говорили, но я также последовал некоторым предложениям по редактированию make-файла с этого форума.
Printf/Sprintf для переменных с плавающей запятой не работает
и добавил следующий текст внутри make-файла
ldflags-gnu-y += -lc -u _printf_float
Путь к Makefile (Atmel Studio 7, использование ASF): ../src/ASF/sam0/utils/make/Makefile.sam.in
Теперь в main.c я использовал printf() для печати числа с плавающей запятой как:
float a = 345.65412;
char buffr[20];
/* --- Print Float using printf only --- */
printf("Float Number 1 : %f\r\n", a);
/* --- Print Float using sprintf ---*/
sprintf(buffr, "Float Number ( Using Sprintf) : %3.3f\r\n", a);
printf(buffr);
Вывод в консольном приложении UART:
Случай I:
Float Number 1 : 2.000000
Float Number ( Using Sprintf) : -0.000
Случай II:
Float Number 1 :
Float Number ( Using Sprintf) :
Кто-нибудь знает, как настроить компоновщик, чтобы заставить printf(), sprintf() или vprintf() работать для печати числа с плавающей запятой на консоли для ARM Cortex M0 (SAM B 11) в Atmel Studio 7?