我遇到了一个USB无法正常工作的问题——使用CubeMX HAL库的USB CDC(虚拟串口)在断开USB线并重新连接后无法恢复。 程序在上传到STM32后,会在while(1)主循环中持续向USB端口写入数据。 while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ CDC_Transmit_FS(buffer, sizeof(buffer)); HAL_Delay(1000); }数据可以正常写出,在Windows 7系统(使用Tera Term和Docklight工具)中可见。 但当我断开USB线缆(OTG FS端口)并重新连接时,Windows会显示"无法识别的USB设备"错误提示。 此时无法接收数据。 必须对STM32F407进行复位操作,才能恢复数据传输和线缆识别功能。 我的问题是 如何使USB设备始终正常工作(在断开并重新连接线缆后),确保能被Windows正确识别并维持数据传输?
|