Решил попробовать использовать такой вариант кода (всё-таки float):
Код
char* get_freq(uint32_t Fr, uint8_t type)
{
static char Str[16];
static float tmp;
tmp = Fr / 1000U;
switch(type)
{
case (0): //KHz
sprintf(Str, "%4.6fKHz", (double)tmp);
return Str;
break;
/* case (1): //MHz
sprintf(Str, "%4.6fMHz", (double)tmp);
return Str;
break;
*/
}
return 0;
}
int main(void)
{
uint32_t i = 560000;
lcd_init();
/*...*/
lcd_putdata(1, get_freq(i, 0));
/*...*/
}
Проблема в sprintf(Str, "%4.6fKHz", (double)tmp), так как в итоге ничего не отображается (просто пустая строка). Почему не хочет показывать, ведь вроде функцию вызвал правильно?