本帖最后由 南来之风 于 2024-9-19 21:34 编辑
CDC类是USB2.0标准下的一个子类,定义了通信相关设备的抽象集合。它与USB2.0标准的关系如下:

在STM32cubeide里面可以方便快捷的开发一个USB CDC应用。这里使用的是USB1 HS.

电路原理图如下:

详细的配置:


点击保存,自动生成代码。查看usbd_desc.c可以看到相关的CDC设备信息:
- /** @defgroup USBD_DESC_Private_Defines USBD_DESC_Private_Defines
- * [url=home.php?mod=space&uid=247401]@brief[/url] Private defines.
- * @{
- */
- #define USBD_VID 1155
- #define USBD_LANGID_STRING 1033
- #define USBD_MANUFACTURER_STRING "STMicroelectronics"
- #define USBD_PID 22336
- #define USBD_PRODUCT_STRING "STM32 Virtual ComPort"
- #define USBD_CONFIGURATION_STRING "CDC Config"
- #define USBD_INTERFACE_STRING "CDC Interface"
- #define USB_SIZ_BOS_DESC 0x0C
主函数中添加简单的串口输出代码,查看效果。
- while (1)
- {
- /* USER CODE END WHILE */
- /* USER CODE BEGIN 3 */
- static uint8_t cnt;
- sprintf((char *) strVcom, "%s %3d", "\r\n Hello ST! 2024/09/19", cnt++);
- CDC_Transmit_HS(strVcom, sizeof(strVcom));
- HAL_Delay(1000);
- }
下面展示USB插入电脑后:
|