Uwp Windows如何处理未使用的串行端口数据

Uwp Windows如何处理未使用的串行端口数据,uwp,serial-port,Uwp,Serial Port,我有一个带有USB设备的应用程序(我自己制作,因此可以对其进行一定程度的修改),它以严格控制的间隔(大约每61微秒12个字节)不间断地输出数据 在主机端,这是一台运行UWP应用程序的Windows 10计算机,我只按需使用这些数据。通常我会一次抓取一秒钟的数据,将其分割成不同的阵列,然后对其进行一些DSP处理,从USB设备中提取我想要的信息 我的问题是当我的UWP应用程序没有监听时,数据被发送到COM端口。我可以按需监听,而忽略一个不断有数据抛出的开放COM端口吗?我是否应该重新编程USB设备以

我有一个带有USB设备的应用程序(我自己制作,因此可以对其进行一定程度的修改),它以严格控制的间隔(大约每61微秒12个字节)不间断地输出数据

在主机端,这是一台运行UWP应用程序的Windows 10计算机,我只按需使用这些数据。通常我会一次抓取一秒钟的数据,将其分割成不同的阵列,然后对其进行一些DSP处理,从USB设备中提取我想要的信息

我的问题是当我的UWP应用程序没有监听时,数据被发送到COM端口。我可以按需监听,而忽略一个不断有数据抛出的开放COM端口吗?我是否应该重新编程USB设备以按需提供数据

我的问题是当我的UWP应用程序没有监听时,数据被发送到COM端口。我可以按需监听,而忽略一个不断有数据抛出的开放COM端口吗

根据您的需求,属性适合场景。uwp平台可以使用
System.IO.port
。你可以参考KazukiOta在这里

使用握手时,当缓冲区中至少有(ReadBufferSize-1024)字节时,将指示连接到SerialPort对象的设备停止发送数据。当缓冲区中有1024字节或更少字节时,指示设备再次开始发送数据。如果设备以大于1024字节的块发送数据,这可能会导致缓冲区溢出

我的问题是当我的UWP应用程序没有监听时,数据被发送到COM端口。我可以按需监听,而忽略一个不断有数据抛出的开放COM端口吗

根据您的需求,属性适合场景。uwp平台可以使用
System.IO.port
。你可以参考KazukiOta在这里

使用握手时,当缓冲区中至少有(ReadBufferSize-1024)字节时,将指示连接到SerialPort对象的设备停止发送数据。当缓冲区中有1024字节或更少字节时,指示设备再次开始发送数据。如果设备以大于1024字节的块发送数据,这可能会导致缓冲区溢出


Win10是一个在保护模式下使用CPU的操作系统。任何处于保护模式的操作系统都不允许(用户)程序直接访问硬件。程序从系统缓冲区“读取”(或您称之为“侦听”),当接收数据的速度快于程序“读取”数据的速度时,系统缓冲区可能会过度运行。通常,当缓冲区已满时,操作系统会将(较旧的)现有数据保留在缓冲区中,并抛出新接收的数据。以每61usec 12个字节的速率,几乎可以保证始终会溢出缓冲区。在这种情况下,您不是在创建自己的固件和设备驱动程序吗?占用总线带宽来发送和接收您不使用的数据似乎是一种浪费。你不应该在设备上添加一个命令来启动/停止发送数据吗?@kunif是的,这似乎是最合理的方式。我以前的硬件版本就是这样工作的,但是我想知道如果我删除了这个命令会发生什么。Win10是一个在保护模式下使用CPU的操作系统。任何处于保护模式的操作系统都不允许(用户)程序直接访问硬件。程序从系统缓冲区“读取”(或您称之为“侦听”),当接收数据的速度快于程序“读取”数据的速度时,系统缓冲区可能会过度运行。通常,当缓冲区已满时,操作系统会将(较旧的)现有数据保留在缓冲区中,并抛出新接收的数据。以每61usec 12个字节的速率,几乎可以保证始终会溢出缓冲区。在这种情况下,您不是在创建自己的固件和设备驱动程序吗?占用总线带宽来发送和接收您不使用的数据似乎是一种浪费。你不应该在设备上添加一个命令来启动/停止发送数据吗?@kunif是的,这似乎是最合理的方式。我以前的硬件版本就是这样工作的,但是我想知道如果我删除了这个命令会发生什么。