提问人:Xia 提问时间:11/15/2023 更新时间:11/15/2023 访问量:53
Arduino串行读取读取超过一个字节
Arduino Serial Read Reading more than a byte
问:
我在读取序列字节时遇到问题。
如果我输入 ,代码输出:。A
This just in ... A
这是正确的,但是当我输入超过 1 个字符时会出现问题。
输入: 输出: AAA
This just in ... A
This just in ... P
This just in ... �
装置:。
未连接其他引脚。只有电缆连接到我的电脑。
我的波特率是正确的,9600 -> 9600。
我的代码,来自一个简单的例子。问题不在于代码。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;
}
}
所以我尝试以二进制形式打印字符:
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,它没有提供任何解决方案。我什至尝试使用旧的IDE,所以我在这里,终于在这里问了一个问题。check your baud rate
评论
SERIAL_8N2