我的 CDC USB 设备上需要 8 位带外数据(配置/噪声读数),我想我可以bcdDevice
在DeviceDescriptor
...事件”——即使你DeviceIOCtl
在集线器上使用“重新读取” DeviceDescriptor
(它不会在我的设备中遇到断点,并且在插入后它会坚持一个常量 bcdDevice——我知道 MSB 需要>2,但似乎都被缓存了)。
A.有没有办法“强制”Windows 重新读取bcdDevice
(最好在端口打开时)?或者任何其他字符串或字节(它们似乎都被缓存了)?
B.有没有办法“强制”Windows阅读(并接受逐字记录的内容)BaudRate
(我想我可以使用BaudRate
状态的MSB,但Windows不相信这是一个有效的数字,所以它只是报告“9600,我猜”——除非我关闭并重新打开端口,否则不会读取它——然后它会尝试设置波特率而不被告知)?
C.在没有 Windows 玩愚蠢游戏的情况下,有没有其他方法可以让我的设备输入/输出 1 个字节?我真的不希望我的设备显示为 2 个 com 端口(一个用于配置,一个用于数据),但是我必须弄清楚哪个是哪个,这会让用户感到困惑——任何其他寄存器/USB 消息——DSR, CTS, RI, CD
但我需要再输入 4 位,至少输出 3 位——而且它需要是“原始的”——没有“如果CD
,那么DSR
必须是 OK”——(一旦配置,“ UseTermination
/ InvertData
/ DriveStrength
" 存储在设备的闪存中,所以它只是一个串行端口,但我需要读取 " noiselevel
" [8 bits req'd],并设置这些寄存器——仅在请求时!——在调试设备时) ...