【发布时间】:2013-10-08 07:22:07
【问题描述】:
我正在编程Arduino,我正在尝试以“我的方式”以十六进制格式编写Serial.print() 字节(继续阅读以获取更多信息)。
即通过使用下面的代码
byte byte1 = 0xA2;
byte byte2 = 0x05;
byte byte3 = 0x00;
Serial.println(byte1, HEX);
Serial.println(byte2, HEX);
Serial.println(byte3, HEX);
我在串行监视器中得到以下输出:
A2
5
0
但是我想输出以下内容:
A2
05
00
换句话说,我想打印“完整”的十六进制值,包括 0s(05 而不是 0 和 00 而不是 0)。
我怎样才能做到这一点?
【问题讨论】:
-
您可以将它们打印成正确格式的字符串,然后通过串口发送该字符串吗?
-
@Retired Ninja - “将它们打印成正确格式的字符串”是什么意思?我怎样才能做到这一点?
-
sprintf(buffer, "%02x", number); Serial.println(buffer); -
我怀疑 Arduino 是否支持
sprintf。 -
我不熟悉它支持什么以及如何支持,但是快速谷歌让我相信 sprintf 是可用的,但不适用于浮点数,没有一些麻烦。还有一个可能对你有用:playground.arduino.cc/Main/Printf
标签: arduino hex byte println arduino-c++