我正在编写arduino sketch,当通过串口发送certian字符时,它将执行certian事务!
我的arduino草图的重要部分是:while(Serial.available()){
Status = Serial.read();
Serial.println(Status);
if (Status == A){
digitalWrite(led, HIGH);
Serial.println("Pin 13 -> ON");
}else if(Status == B){
digitalWrite(led, LOW);
Serial.println("Pin 13 -> OFF");
}
}
BTW:变量状态是整数类型!!
问题是它有时可以工作,有时不工作,所以当我上传草图时工作正常我输入字母A并将其转换为数字65,键入字母B并将其转换为数字66.过了一段时间后突然开始输出数字193和194.如果它返回193和194 alwas但它没有! 希望somone会知道解决方案,如果你想要更多信息...
答案 0 :(得分:0)
if (Status == A)
正在比较两个变量Status
和A
。
您应该将其替换为if (Status == 'A')
。
与if (Status == 'B')
相同。
答案 1 :(得分:0)
那么,193/194仅与65/66比1(MSB)不同。您可以像这样掩盖最左边的位:
Status = Status & 01111111; // MSB will be zeroed
或双班:
Status = Status << 1;
Status = Status >> 1; // now you have dropped the leftmost bit
查看文档here