如何在 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
另外两个建议使用 byte
或 uint8_t
(它们相等)的答案,但这两种数据类型都是 unsigned,取值范围是0到255,如果要打印负数,可以这样试试:
char x=-1;
Serial.print(x,DEC);
我正在使用 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
另外两个建议使用 byte
或 uint8_t
(它们相等)的答案,但这两种数据类型都是 unsigned,取值范围是0到255,如果要打印负数,可以这样试试:
char x=-1;
Serial.print(x,DEC);