我有以下的Arduino代码。如何在Arduino上通过串行获取输入字节?
void setup()
{
Serial.begin(9600);
}
void loop()
{
if(Serial.available() > 0)
{
int b=Serial.read();
Serial.println(b);
}
}
如果我打开串口监视器,输入00000001我得到的输出
48
48
48
48
48
48
48
49
OK,所以,首先,为什么48(最后49行),其次为什么这么多线?
我期待得到'1'的简单输出。
如果我将行Serial.println(b);
更改为Serial.println(00000001,DEC);
,我得到了我期望的(即'1')。但是,如果我将该行更改为Serial.println(b,DEC);
,则会得到与以前相同的奇怪输出。
输入8个字符得到8个结果。最后一个字符是不同的,是1而不是0,最后的结果是不同的,是一个更高的.... Google'ASCII table'。 –
啊,我想我现在明白了。所以当我用Serial.println(00000001,DEC)取代这行时,它计数为一个字节,而串行监视器将每个数字作为一个整数? – coolblue2000
如何在串口监视器中模拟串行字节流输入? – coolblue2000