I konfiguriert Atmel ARM Cortex M0 der UART für Druckzeichenfolgen und ganze Zahlen an der Konsole std C Funktion printf() in Atmel Studio 7.Drucken Gleitkommazahl mit printf() am ARM Cortex M0 uart Konsole
Fall der Verwendung ich
ich versuche, printf() Funktionstyp Druck Gleitkommawerte zu machen und für die ich verfolgt folgende Vorschläge zu tun, so:
arm-none-eabi-gcc : Printing float number using printf
und ich später bearbeitet/die Linker-Flags folgenden Texte getrennt zu verschiedener Zeit hinzugefügt:
-lc -u _printf_float
-lc -lrdimon -u _printf_float
Fall II
Obwohl ich nicht alles, was sie sagte, verstehen konnte, aber ich einige der Vorschläge gefolgt zu bearbeiten Makefile von diesem Forum auch.
Printf/Sprintf for float point variables not working
und fügte folgenden Text innerhalb der Make-Datei
ldflags-gnu-y += -lc -u _printf_float
Makefile Pfad (Atmel Studio 7, ASF verwenden): ../src/ASF/sam0/utils/make/Makefile. sam.in
nun in der main.c I printf() verwendet zum Drucken von Gleitkommazahl als:
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);
Ausgabe auf einer UART-Konsole App .:
Fall I:
Float Number 1 : 2.000000
Float Number (Using Sprintf) : -0.000
Fall II:
Float Number 1 :
Float Number (Using Sprintf) :
Kennt jemand Linker Konfiguration printf zu machen() , sprintf() oder vprintf() arbeiten zum Drucken von Fließkommazahl auf der Konsole für ARM Cortex M0 (SAM B 11) in Atmel Studio 7?
Einige andere Links, die ich gefolgt, die ich nicht auf die Frage enthalten könnte: [Printf mit Floating-Point-Unterstützung in armgcc] (http://atmel.force.com/support/articles/de_DE/FAQ/Printf-mit-floating-point-support-in-armgcc) [Verwenden von Gleitkommazahlen mit sprintf, gcc-arm-none-eabi, nRF51822] (https://devzone.nordicsemi.com/question/5076/using-floats-with-sprintf-gcc-arm-none-eabi-nrf51822 /) – mrUnfused