为什么我的Arduino串行端口会给我半随机数?

为什么我的Arduino串行端口会给我半随机数?,arduino,serial-port,arduino-uno,Arduino,Serial Port,Arduino Uno,我的Arduino Uno有一个基本问题。 我的示例代码通过串行端口获取一个数字,并应将其打印回来 int incomingByte=0; 无效设置(){ Serial.begin(9600); Serial.println(“你好世界”); } void循环(){ 如果(Serial.available()>0){ //读取传入字节: incomingByte=Serial.read(); //说出你得到了什么: 连续打印(“我收到:”); Serial.println(incomingByt

我的Arduino Uno有一个基本问题。
我的示例代码通过串行端口获取一个数字,并应将其打印回来

int incomingByte=0;
无效设置(){
Serial.begin(9600);
Serial.println(“你好世界”);
}
void循环(){
如果(Serial.available()>0){
//读取传入字节:
incomingByte=Serial.read();
//说出你得到了什么:
连续打印(“我收到:”);
Serial.println(incomingByte,DEC);
}
} 
当我发送0时,我收到48

0->48
1->49
2->50
3->51

a->97
b->98
A->65

那么为什么它不把相同的数字发送给我呢?

在您的程序中,输出是Arduino接收到的输入。ASCII等价物0是48,1是49,a是97,a是65,依此类推

原因是您正在将输入存储到
incomingByte
变量(
incomingByte=Serial.read();
),但您将
incomingByte
变量声明为
int
。当一个字符分配给整型变量时,其对应的ASCII值将存储到

因此,如果要打印发送给Arduino的字符,需要更改
int incomingByte=0
字符输入字节