串口未接收到数据

本文关键字:数据 串口 | 更新日期: 2023-09-27 18:10:16

首先为我的英语道歉:)

我有一个PCI串口卡,有2个COM端口。我用它来接收数据从另一台计算机通过串行电缆。(另一台计算机随后将被命名为"发件人")

问题是,当电缆插入到我的电脑,我重新启动(Windows 7),(发件人仍在运行…),然后我的电脑没有收到任何数据。但是当我重新启动后,我在我的电脑连接电缆,它开始接收。我暂时解决了这个问题,首先启动我的电脑,然后启动发件人的电脑,但这真的是一个可怕的解决方案……

我试着把我的电脑和另一台电脑(不同的发件人)连接起来,它工作得很好。所以我认为问题可能出在我的主发送器上。也许它正在等待一些信号从我的计算机端口准备好了吗?或者Windows 7可以阻止我的串口卡(标准的COM1不是在那张卡上工作正常)在重新启动?也许我必须手动向发送者发送一些信号,表示我准备好了?顺便说一下,我不能,以任何方式,调整发件人的个人电脑;只能打开或关闭。

我对串行端口没有任何专业知识,所以我真的不知道该怎么做,或者我目前做错了什么。

任何想法?(我的接收器应用程序是用c#编写的)

更新:我忘了说,当电缆连接…重新启动…那么端口甚至不能打开

串口未接收到数据

这是由握手信号引起的问题。发送方的DSR(数据集就绪)连接到您的DTR(数据终端就绪)。当你重新启动时,它会看到信号关闭,现在它会生气地发送任何东西,因为它认为你不再连接。如果不设置SerialPort,可能会加剧这个问题。DtrEnable to true在你的程序中,这是很容易被忽略的。

如果您设置了SerialPort,那么RTS和CTS信号也是如此。属性设置为握手以外的任何内容。RequestToSend(推荐值),那么现在控制信号就成了您的工作。必须在代码中显式地将RtsEnable属性设置为true

它往往是偶然工作的,您倾向于使用另一个程序来测试连接。像超级终端或Putty,他们会为你打开信号,你的程序现在将正常运行。

这种bug当然也可能存在于Sender中。如果你不能修复代码那么你所能做的就是重新布线。将RTS连接到DSR和CTS的发送端,它将始终看到信号打开

问题在卡片…我换了一个新的,现在它工作正常。看来这张卡对Windows 7来说太旧了