如何在if条件中使用Arduino串口数据并执行指定代码?
问题解决
你的代码核心问题是错误使用Console.ReadLine()获取Arduino的响应——这个方法是读取你在控制台手动输入的内容,并非串口接收到的Arduino数据。你已经通过port.ReadLine()拿到了Arduino发来的内容,直接用这个变量做判断即可。
修正后的代码:
string ArduinoResponse = port.ReadLine(); Console.WriteLine(ArduinoResponse); // 打印串口数据方便调试 if (ArduinoResponse?.Trim() == "WARNING!") // 加?避免空引用,Trim去掉换行/空格干扰 { // 这里写入你要执行的函数 }
额外注意点:
- Arduino端发送数据时,要使用
Serial.println("WARNING!")(带换行符),这样port.ReadLine()才能正确读取完整的一行内容。 - 串口传输可能附带多余的换行、空格或制表符,用
Trim()可以清除这些干扰字符,避免判断逻辑失效。
内容的提问来源于stack exchange,提问作者Wil Fred
相关产品推荐
相关产品推荐

