串口通信出现奇怪的问题

本文关键字:问题 通信 串口 | 更新日期: 2023-09-27 18:01:48

使用串口(COM)时,我有两个问题,我找不到任何原因:

1-我用c# (wpf)写了一个程序来接收来自微控制器的数据(微控制器以间隔e连续发送一些数据)。(每100毫秒),当我在visual studio中运行我的程序时,它接收数据,但接收数据时有一些延迟;它接收前三个数据,然后是延迟,然后是其他一些数据,并在没有任何约束的情况下继续这个场景。我尝试过发布模式和调试模式,但没有改变。但当我去调试文件夹或发布文件夹,从那里运行。exe一切都是好的,并不断接收数据),我真的很困惑!!

2-用于连接微I使用usb-to-COM转换器(电缆一侧usb和另一侧COM端口)。有时在程序运行之间,我通过从笔记本电脑上拔出usb(但micro正在发送)来断开连接,当我再次连接到笔记本电脑,鼠标,应用程序窗口…都动了,我什么都控制不了!

串口通信出现奇怪的问题

USB串行端口电缆实际上是一个设备(通常归类为USB到UART桥接设备,实际上在其中一个电缆连接器中有一个UART)。通过从笔记本电脑上拔出USB电缆,您可以有效地从系统中移除串行端口设备,这意味着您的COM端口不再存在。如果您在程序运行时这样做,我预计程序会崩溃。通过串行端口的连接是连接到''.'COM#

的文件流。

'#'只是一个占位符,它可以是COM4, COM5等,这取决于系统上有多少其他串口设备是活动的。你所做的实际上类似于当你的程序在硬盘上打开一个文件时断开硬盘的连接。我不指望它会优雅地结束。

在数据接收方面,按照现在的标准,串行端口是非常慢的,而计算机程序按照串行端口的标准是非常快的。此外,虽然串行端口输入可以作为阻塞调用实现,但它最终会超时。当超时时,如果不检查超时条件,您可能正在读取0字节。

我所能提供给你的,只是不知道你到底想要完成什么,以及你是如何完成它的。