You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#串口发送指定命令无响应,求助可行解决方案

串口发送指令问题解决方法

你的问题出在port.Write的第三个参数上——你固定写了1,这意味着每次只发送1个字节:

  • 发送"\r\n"时,虽然字符串是两个字符,但你只发了第一个字节(\r),设备刚好能识别并响应;
  • 发送"S1\r\n"时,只发了第一个字符S,设备没有收到完整的指令,自然不会返回数据。

要正确发送完整指令,你需要把整个字符串的所有字节都发出去,把第三个参数改成字节数组的长度即可:

inputData = "S1\r\n";
byte[] sendBytes = Encoding.ASCII.GetBytes(inputData);
port.Write(sendBytes, 0, sendBytes.Length);

或者直接使用port.Write的字符串重载(底层会自动处理编码和长度):

inputData = "S1\r\n";
port.Write(inputData);

这样就能和Putty一样发送完整的S1\r\n指令,设备收到后就会正常返回响应了。

内容的提问来源于stack exchange,提问作者Alessandro Chiodo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 05:36:22