为什么我的Arduino串行端口会给我半随机数?
我的Arduino Uno有一个基本问题。为什么我的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
我的示例代码通过串行端口获取一个数字,并应将其打印回来
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代码>至字符输入字节代码>