STM32 HAL USB CDC控制数据解码/开放端口检测

STM32 HAL USB CDC控制数据解码/开放端口检测,usb,stm32,hal,Usb,Stm32,Hal,我在试图弄清楚如何在CDC\u control\u FS()函数中解析控件数据时迷路了。你能给我指一些有关这方面的文件吗 背景: 我正在使用stm32f103,试图实现USB CDC与HAL库的通信。我需要检测usb端口是否由PC打开,它应该处理开机情况以及运行时重新连接电缆。经过一些研究,我认为检查DTR信号可能是(最优雅的)解决方案。我知道有CDC\u Control\u FS()函数可以从PC驱动程序向stm32f103提供所有线路配置,但不幸的是,我不知道数据格式/如何提取DTR信号,以

我在试图弄清楚如何在
CDC\u control\u FS()
函数中解析控件数据时迷路了。你能给我指一些有关这方面的文件吗

背景:

我正在使用stm32f103,试图实现USB CDC与HAL库的通信。我需要检测usb端口是否由PC打开,它应该处理开机情况以及运行时重新连接电缆。经过一些研究,我认为检查DTR信号可能是(最优雅的)解决方案。我知道有
CDC\u Control\u FS()
函数可以从PC驱动程序向stm32f103提供所有线路配置,但不幸的是,我不知道数据格式/如何提取DTR信号,以便能够设置一些标志来指示usb端口当前处于打开或关闭状态。

从下载zip文件。在zip文件中,有一个名为PSTN120.pdf的文档。请参阅第6.3.12章SetControlLineState并参见表18。我想知道您的方法是否真的有效,即只要没有程序打开串行端口,所有操作系统是否都保持DTR解除断言,然后即使程序不使用硬件流控制也断言DTR。如果你成功了,请告诉我们。@Codo Thak你是帮助我们的好人!现在我明白了,我是在浪费时间试图找到它,因为我错误地认为这是STMicroelectronics驱动程序特定的格式。。我不知道这是否是实现我的目标的最佳和可移植的方法,但首先-它将仅用于windows,其次-我不知道如何处理这个问题,因为HAL不提供API。这是我的第一次尝试,如果我成功/失败了,我会告诉你。在Windows上使用不同程序进行了一些测试后,我发现了以下几点:1。大多数程序确实在端口打开后断言DTR。唯一一个没有断言DTR的是“Terminal by”Br@y++,它有DTR按钮,所以操作员手动处理。2.所有程序在端口关闭时取消断言DTR。