4

这是一个代码,是我项目的一部分;

  //----------------------------------------------------------------------------
  // USB: Virtual COM ----------------------------------------------------------
  //----------------------------------------------------------------------------
  USB_Interrupts_Config();
  Set_USBClock();
  USB_Init();

  while (bDeviceState != CONFIGURED)
      ;

  //----------------------------------------------------------------------------
  // Main Loop -----------------------------------------------------------------
  //----------------------------------------------------------------------------
  while(1)
  {
    USB_printf("Main Function");

    GPIO_SetBits(GPIOC, GPIO_Pin_10);
    Wait(200);
    GPIO_ResetBits(GPIOC, GPIO_Pin_10);
    Wait(200);
  }

将我的 USB 插入电路后,虚拟 COM 端口驱动程序安装正确完成,LED 闪烁也正常。

但是当我尝试通过超级终端或第三方工具连接 COM 端口时,我无法实现。

有意见吗?

谢谢..

4

2 回答 2

1

我有类似的问题,措辞略有不同 - 可以连接到设备,直到它被重置。我的定制板将正确枚举 VCP,但在设备重置后无法连接。事实证明,该 USB 主机保留了设备的枚举地址,而设备在重置/重新编程后会丢失其地址。为避免此类问题,软件复位还应执行 USB 物理层复位(断开 D+/D- 引脚上的上拉电阻,具体取决于使用的速度)。在这种情况下,应该可以在设备管理器中禁用然后重新启用它或重新插入后连接到设备

于 2018-11-06T15:00:36.063 回答
-2

不一定是答案,但可能值得检查。

如果您定期从 COM 端口发送信息并且看起来您的程序确实如此(从未使用过 STM32),Windows(超术语,所以我假设是 Windows XP)可以将其检测为串行鼠标并将其枚举为鼠标,从而打开端口并防止使用它的任何其他应用程序。

我们的设备(来自 SiLabs 的 CP2103)遇到了很多问题,这也是 GPS 接收器的常见问题。

这个答案GPS Detected as serial mouse很好地描述了问题和可能的解决方法。

于 2013-03-06T15:55:41.753 回答