如何在 Arduino 中将 char 变量作为数字打印到串行端口?

How to print in Arduino a char variable as a number to the Serial Port?

我正在使用 Arduino Uno。我正在从 EEPROM 读取一个字节值并将该值存储在 char(1 个字节)类型的变量中。

我想将变量的值作为数字(而不是相应的 ASCII 码)打印到串行监视器。例如考虑 char val = 5。 我想查看串行监视器 5 而不是 ASCII 值。

我尝试了 Serial.print(val)Serial.write(val) 但结果是一样的:它总是打印 ASCII 码。

如何将值打印到串行监视器?

提前致谢。

char 变量转换为 unsigned char 类型:

Serial.print( (uint8_t) c );

这会调用一个不同的 print 方法。他们是 "overloaded".

改为将变量存储为字节类型。

byte val = 5;

然后Serial.print(val)会给出5

另外两个建议使用 byteuint8_t(它们相等)的答案,但这两种数据类型都是 unsigned,取值范围是0到255,如果要打印负数,可以这样试试:

char x=-1;
Serial.print(x,DEC);