此问题可能是因为串口通信的数据类型不匹配所导致。在Python中发送的字符串经常会包含不可见字符,如换行符、回车符或空格。为了确保Arduino读取和处理字符串正确,可以进行以下操作:
import serial ser = serial.Serial('COM3', 9600) message = "string with invisible characters \n" ser.write(message.strip().encode())
void setup() { Serial.begin(9600); }
void loop() { if (Serial.available() > 0) { String message = Serial.readStringUntil('\n'); if (message == "pre-determined string") { //代码逻辑 } } }
您可以使用String或字符数组中的任何一种方法来存储接收到的字符串,具体取决于您的应用程序需求。使用上面的方法,在字符串中包含不可见字符时,Python和Arduino之间的串口通信应该正常工作,并且可以在Arduino接收到预定字符串时执行代码逻辑。