C# 串口发送不可接收的数据

Posted

技术标签:

【中文标题】C# 串口发送不可接收的数据【英文标题】:C# Serial Port Sending Un-receivable data 【发布时间】:2013-09-13 14:26:51 【问题描述】:

我在 Windows 8 上使用 .Net Framework 4,并且遇到了一个非常奇怪的串行端口问题。

我可以通过串口接收数据,但是当我从同一个串口发送数据时,非常标准的终端仿真器无法接收到数据(H.我看到发送端口的 TX LED 亮起,并且RX LED 从接收端口亮起,但仍不显示任何接收到的文本。

出于什么原因,接收端口无法获取/解释/无论是什么流?

我正在尝试发送字符串:“0300” 作为 4 字节字节数组:30-33-30-30

使用以下代码行:

comm.Write(arrayToSend, 0, arrayToSend.Length);

这是调试中 COM 端口配置的照片:

如果您有任何有用的见解,请告诉我:D

谢谢, - 马特

【问题讨论】:

可能是电气问题,您需要一根零调制解调器电缆。或者您使用的程序正在关注硬件握手线,就像它应该的那样。这是经典被忽视的,太多的程序员选择 Handshake.None。然后,您必须自己将 DtrEnable 和 RtsEnable 属性设置为 true。 哈哈!我想你可能是对的。我正在使用一些以前工作过的时髦的自制连接器。我现在使用的电缆仅使用 TX、RX 和 GND,并且似乎可以正常工作。我认为我之前使用的连接器使控制线处于不良状态。 【参考方案1】:

我认为你需要

comm.Flush();

您的数据。

【讨论】:

感谢您的意见,但我很确定 Hans Passant 的建议解决了我的问题 :)

以上是关于C# 串口发送不可接收的数据的主要内容,如果未能解决你的问题,请参考以下文章

串口调试助手-发送数据,按字符或16进制显示接收数据的C#程序

ROS串口通信简析(一)——串口发送

C#上位机开发——SerialAssistant功能优化(串口自动扫描功能接收数据保存功能加载发送文件发送历史记录打开浏览器功能定时发送功能)

想用C#写linux下的串口收发程序?

C# 串口编程,扫码枪使用

C# 之 串口数据侦听的实现