Serial.read() to int



当串行数据以字节为单位读取到int中(它似乎没有转换为int(,然后测试它是否与"1"相同时,这里到底发生了什么?为什么它有效?如果返回的结果如何为真?"1"one_answers"1"之间有什么区别(它们不是都是字符串吗?(?

SoftwareSerial bluetooth(2, 3);
void loop()
{
if (bluetooth.available())
{
int number = bluetooth.read();
//how is number (49 in bytes) identical to '1'
if (number == '1')
{
Serial.print(number);
Serial.print(" : ");
Serial.println("on");
}
}
}

读取单个值,并将其存储在number中。将该值与字符'1'进行比较。在ASCII中,字符'1'的十进制值为49。

我想,如果作者将number声明为char(甚至byte(而不是int,那么这个例子会更清楚。我假设read()只返回一个8位的值。

对于您的最后一个问题:"这是一个字符串">,但'z'是一个字符。

最新更新