Eclipse не корректно работает функция sprintf с форматом float

Автор: | 26.10.2016

Понадобилось мне как то вывести переменную типа float на LCD дисплей.

Написал код:

#define F_CPU 1000000UL // 1 MHz
#include <avr\io.h>
#include <util\delay.h>
#include "LCD.h"
#include <stdio.h>


unsigned int a = 123;
char buffer[200];
float my_custom_float = 25.64;

int main (void){


LCDinit();

sprintf(buffer,"V = %.2f uS",my_custom_float);
LCDstring(buffer,0,0);

}

 

На дисплее ожидалось увидеть следующее: (V = 26.64 uS), но выводилось только (V =  Us).

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

Необходимо в AVR C Linker прописать вот этот аргумент: (-Wl,-u,vfprintf).

Добавить параметр для библиотеки:

printf_flt

 

После проделанных манипуляций, должно работать.

Добавить комментарий