Windows ce 关闭并打开串行端口驱动程序会挂起Windows CE 6.0

Windows ce 关闭并打开串行端口驱动程序会挂起Windows CE 6.0,windows-ce,Windows Ce,我面临的问题与此处的旧线程密切相关: Windows embedded CE 6.0运行在基于x86的SBC上,具有4个串行端口,基于x86 SoC本身的16550 UARTpart 将现场设备连接到定期传输的串行端口 在本机应用程序中打开此串行端口,并继续从连接的设备读取数据。 本机应用程序使用标准Win CE串行通信文件、SetCommState、ReadFile等 关闭这个串行端口。但串行数据仍在进入Windows CE系统 一段时间后,再次尝试打开此串行端口。整个Windows CE系统

我面临的问题与此处的旧线程密切相关:

Windows embedded CE 6.0运行在基于x86的SBC上,具有4个串行端口,基于x86 SoC本身的16550 UARTpart

将现场设备连接到定期传输的串行端口

在本机应用程序中打开此串行端口,并继续从连接的设备读取数据。 本机应用程序使用标准Win CE串行通信文件、SetCommState、ReadFile等

关闭这个串行端口。但串行数据仍在进入Windows CE系统

一段时间后,再次尝试打开此串行端口。整个Windows CE系统挂起

调试Windows CE内核后,由于端口重新打开后在串行PDD驱动程序中创建了无限循环,因此出现了挂起。仍在调试

有人已经遇到这个问题了吗


p.S>即使使用.Net CF SerialPort类,也会出现相同的挂起问题&VS2008内置的C SmartDevice Console类型应用程序遵循相同的步骤。

您是否在其他线程中应用了Michael Burr建议的修复方法?Iam使用WIndows CE 6.0 R3,串行驱动程序似乎正在正确初始化上的16550块打开调用。另一方面,在挂断问题期间,我看到IIR寄存器中设置了“字符超时指示”中断,指示Rx FIFO中的陈旧数据。但是在这种情况下,LSR寄存器中没有设置“Data Ready”位&因此驱动程序在打开过程中会混淆并挂起!看起来像是串行PDD驱动程序中的错误。。。