Я меня возникли некоторые проблемы с выводом в терминал значений с плавающей точкой. Самый обычный sprintf прекрасно работает с целыми числами и отказывается работать с float. Например
CODE
float flttest = 123.45678;
sprintf(TestArray, "-= %lf =-", flttest);
Terminal("Test1: STR %s", TestArray);
uint16_t integer= 12345;
sprintf(TestArray, "*- %d -*", integer);
Terminal("Test2: STR %s", TestArray);
При этот вывод:
003 INFO: Test1: STR -= 403099659660755.687500 =-
004 INFO: Test2: STR *- 12345 -*
Основные ключи компилятора: arm-none-eabi-gcc -c -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mlittle-endian -mthumb-interwork -ffunction-sections -fdata-sections -Wl,--gc-sections
Основные ключи линкера: arm-none-eabi-gcc -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Xlinker -Map="project.map" -L/opt/gcc-arm-none-eabi-5_4/arm-none-eabi/lib/armv7e-m/fpu/ --specs=rdimon.specs -T/Core/STM32F4XX_FLASH.ld
Кто-либо сталкивался с подобным?