Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 串行端口通信的奇怪问题_C#_Wpf_Visual Studio 2010_Serial Port - Fatal编程技术网

C# 串行端口通信的奇怪问题

C# 串行端口通信的奇怪问题,c#,wpf,visual-studio-2010,serial-port,C#,Wpf,Visual Studio 2010,Serial Port,我在使用串口COM时遇到两个问题,我找不到任何原因: 1-我已经用c wpf编写了一个程序来接收来自微控制器的数据。当我在visual studio中运行我的程序时,它接收数据,但在接收数据时有一些延迟,CRO会以一定的间隔连续发送一些数据,例如每100毫秒发送一次;它接收前三个数据,然后是一个延迟,然后是一些其他数据,并在没有任何规则的情况下继续此场景。我尝试了发布模式和调试模式,但没有改变。但是,当我转到调试文件夹或发布文件夹并从那里运行.exe时,一切都正常并且连续接收数据,我真的很困惑

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

1-我已经用c wpf编写了一个程序来接收来自微控制器的数据。当我在visual studio中运行我的程序时,它接收数据,但在接收数据时有一些延迟,CRO会以一定的间隔连续发送一些数据,例如每100毫秒发送一次;它接收前三个数据,然后是一个延迟,然后是一些其他数据,并在没有任何规则的情况下继续此场景。我尝试了发布模式和调试模式,但没有改变。但是,当我转到调试文件夹或发布文件夹并从那里运行.exe时,一切都正常并且连续接收数据,我真的很困惑


2-为了连接micro,我使用usb到COM转换电缆,一端是usb,另一端是COM端口。有时,在程序运行期间,我会从我的笔记本电脑中拔出usb断开连接,但micro正在发送,当我再次将其连接到笔记本电脑、鼠标、应用程序窗口时,。。。都动了,我什么都控制不了

USB串行端口电缆实际上是一种设备,通常被归类为USB到UART桥接设备,其中一个电缆连接器中实际上有一个UART。通过从笔记本电脑中拔出USB电缆,可以有效地从系统中删除串行端口设备,这意味着COM端口不再存在。如果在程序运行时执行此操作,我预计程序会崩溃。通过串行端口的连接是连接到\\.\COM的文件流

只是一个占位符,它可以是COM4、COM5等,具体取决于系统上有多少其他串行端口设备处于活动状态。实际上,您所做的类似于在程序打开硬盘驱动器上的文件时断开硬盘驱动器的连接。我不希望它以优雅的方式结束

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


我能为您提供的一切,无需知道您正试图实现什么以及如何实现它的更多细节。

无需查看任何代码,也无需知道您使用的是哪种微控制器,您希望得到什么样的答案?