我在读取串行字节时遇到问题。 如果我输入
A
,代码输出:This just in ... A
。 是正确的,但是当我输入超过1个字符时就会出现问题。
输入:
AAA
This just in ... A
This just in ... P
This just in ... �
设备:
Arduino Nano
。char receivedChar;
boolean newData = false;
void setup() {
Serial.begin(9600, SERIAL_8N1);
Serial.println("<Arduino is ready>");
}
void loop() {
recvOneChar();
showNewData();
}
void recvOneChar() {
if (Serial.available() > 0) {
receivedChar = Serial.read();
newData = true;
}
}
void showNewData() {
if (newData == true) {
Serial.print("This just in ... ");
Serial.println(receivedChar);
newData = false;
}
}
抱歉,它是中文的,值如下:9600, 8, None, 1, None.
所以我尝试以二进制形式打印字符:
char receivedChar;
boolean newData = false;
void setup() {
Serial.begin(9600, SERIAL_8N2);
Serial.println("<Arduino is ready>");
}
void loop() {
recvOneChar();
showNewData();
}
void recvOneChar() {
if (Serial.available() > 0) {
receivedChar = Serial.read();
newData = true;
}
}
void showNewData() {
if (newData == true) {
Serial.println(receivedChar, BIN);
newData = false;
}
}
输入:
A
1000001
输入:
AAA
1000001
1010000
11111111111111111111111111010000
我在谷歌上搜索了大约100次,其中大多数都让我更了解我正在处理的事情,但没有一个能解决我的问题。我问了ChatGPT,它除了
check your baud rate
之外没有提供任何解决方案。我什至尝试使用旧的 IDE,所以我在这里,终于在这里问一个问题。
不是答案,但可能有用的信息...您的代码的两个块都在我的 Arduino Uno 上以所有波特率返回了预期输出。