相关疑难解决方法(0)

Arduino:printf/fprintf打印问号而不是浮点数

我有一个Arduino草图的以下代码:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
static FILE lcdout = {0} ;

static int lcd_putchar(char ch, FILE* stream)
{
    lcd.write(ch) ;
    return (0) ;
}

void setup() {
  lcd.begin(16, 2);
  fdev_setup_stream (&lcdout, lcd_putchar, NULL, _FDEV_SETUP_WRITE);
}

void loop() 
{
  stdout = &lcdout;
  printf("%.2f Volts", 2.0);
}
Run Code Online (Sandbox Code Playgroud)

问题出现在代码的最后一行.这应该打印出"2.00伏特",而是打印"?伏特"(问号而不是实际的浮点值).如果我尝试格式化整数,这很有用.

所以基本上,如果我用以下内容替换printf行,它将正常工作:

printf("%d Volts", 2); //prints correctly "2 Volts"
Run Code Online (Sandbox Code Playgroud)

知道问题是什么?

c printf arduino stdio

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

arduino ×1

c ×1

printf ×1

stdio ×1