我在 Atmel studio 7 中使用 std C 函数 printf() 配置了 Atmel 的 ARM Cortex M0 的 UART,以便在控制台上打印字符串和整数。
案例一
我正在尝试使 printf() 类型的函数打印浮点值,为此我遵循了以下建议:
arm-none-eabi-gcc :使用 printf 打印浮点数
后来我在不同的时间分别编辑/添加了以下文本的链接器标志:
-lc -u _printf_float
-lc -lrdimon -u _printf_float
案例二
虽然我无法理解他们所说的一切,但我也遵循了一些建议来编辑这个论坛的 makefile。
并在makefile中添加了以下文本
ldflags-gnu-y += -lc -u _printf_float
生成文件路径(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 控制台应用程序上输出:
案例一:
Float Number 1 : 2.000000
Float Number ( Using Sprintf) : -0.000
案例二:
Float Number 1 :
Float Number ( Using Sprintf) :
有谁知道配置链接器以使 printf()、sprintf() 或 vprintf() 在 Atmel Studio 7 的 ARM Cortex M0 (SAM B 11) 的控制台上打印浮点数?