在当今嵌入式系统开发领域,STM32微控制器家族凭借其高性能、低功耗、丰富的外设支持等特性,得到了广泛应用。为了满足特定项目需求,开发者们经常需要通过定制化的工程配置来实现所需功能。本文档详细记录了如何在STM32平台上,利用STM32CubeMX和ThreadX/USBX模块来生成一个USB CDC ACM(通用串行总线通信设备类抽象模型)虚拟串口项目,同时确保项目不包含电源分配(PD)功能。 文档描述了客户需求:客户正在使用STM32H563微控制器开发产品,需要实现一个不支持PD功能的USB CDC ACM虚拟串口工程。由于STM32CubeH5代码库中默认工程包含PD功能,这就要求开发人员在硬件和软件层面进行适当的调整。 硬件调整方面,文档详细介绍了如何通过修改NUCLEO_H563ZI开发板上的电路来实现不使用PD功能。具体操作包括更换电阻位置以将PA11、PA12连接到开发板的CN12上,从而可以直接连接USB线。同时指出USB连接线应该连接GND、D+、D-三根线,以及在客户开发板设计中,VBUS连接的重要性。 在软件配置方面,文档逐步指导如何使用STM32CubeMX软件进行工程配置,具体步骤包括: 1. 创建一个新的不带trustZone的工程。 2. 配置USB外设,并使能USB全局中断。 3. 配置ThreadX外设,并使能Core。 4. 配置USBX模块,包括启用Core System,选择Device CoreStack FS和Device Controllers FS,选择CDC ACM类,并配置USB基本参数。 5. 选择其它Platform的USB配置。 6. 配置SYS,使用TIM6作为系统滴答时钟的时钟源。 7. 使用GPIO来控制USB的断开和连接,并使能外部中断。 8. 配置系统时钟为250MHz。 文档还强调了在USB CDC ACM虚拟串口项目中,要模拟USB的断开和连接,可以使用一个GPIO引脚(GPIO_EXTI13)来控制,并使能相应的外部中断。 通过对硬件和软件的定制化调整,开发者能够创建出既符合特定项目需求又具备必要功能的USB CDC ACM虚拟串口工程,而无需电源分配(PD)功能。这对于那些需要USB通信但对电源管理有特殊要求的应用场景非常有用。 本文档内容丰富,不仅涵盖了硬件层面的电路调整,还包括了软件层面的详细配置过程,为实际项目开发提供了极其实用的指导和参考。无论是硬件工程师还是软件开发人员,都能从中获取到宝贵的信息和经验,以更好地完成USB CDC ACM虚拟串口的开发工作。
2026-01-22 21:14:08 1.38MB
1
USB串行 USBCDC-ACM USB串行端口实现。 CDC-ACM是大多数操作系统都开箱即用支持的USB类,用于实现调制解调器和通用串行端口。 SerialPort类实现了类似于流的缓冲串行端口,可以与普通UART相似地使用。 装箱中还包含CdcAcmClass,这是一个较低级的实现,具有较少的开销,但需要更多的注意才能正确使用。 例子 一个完整的示例需要使用硬件驱动程序,但是与硬件无关的部分如下: let mut serial = SerialPort :: new ( & usb_bus); let mut usb_dev = UsbDeviceBuilder :: new ( & usb_bus, UsbVidPid ( 0x16c0 , 0x27dd )) . product ( "Serial port" ) . device_class (USB_CL
2021-12-31 17:45:30 11KB Rust
1
当你在ARM系统下调试,需要用到USB转串口程序时, 发现找不到设备驱动文件, 你输入了 dmesg查找原因, 如果你只看到这个——(设备信息) New USB device found, idVendor=ac90, idProduct=3003 [74743.289968] usb 2-2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [74743.290002] usb 2-2.1: Product: SM-2D PRODUCT USB UART [74743.290004] usb 2-2.1: Manufacturer: SM [74743.290006] usb 2-2.1: SerialNumber: APP-000000000 但是看不见这个——(串口驱动) [74743.902036] cdc_acm 2-2.1:1.0: ttyACM0: USB ACM device [74743.903940] usbcore: registered new interface driver cdc_acm 那可能是因为少了这个——cdc-acm.ko 不要忘了加这个 sudo depmod -a 还有这个 modprobe cdc-acm 然后呢,你就可以操作这个了^,^ /dev/ttyACM*
2021-08-17 22:13:08 97KB cdc-acm.ko armv7 usb转串口
1
USB转串口驱动模块 加载方式 把文件放在 /lib/modules/$(uname -r)/kernel/drivers/usb/class/cdc-acm.ko sudo depmod -a modprobe cdc-acm 验证方式 插入USB转串口设备 执行命令:dmesg |grep cdc_acm cdc_acm 2-2.1:1.0: ttyACM0: USB ACM device [74743.903940] usbcore: registered new interface driver cdc_acm
2021-08-17 22:01:14 18KB usb转串口 4.4.0-31-generic ubuntu14.04 linux
1
Linux下的CDC-ACM驱动源码,USB虚拟串口驱动程序,欢迎下载学习!
2021-06-17 12:44:52 159KB CDC-ACM usb虚拟串口
1
STM32USB主机移植USBX做CDC通讯
2021-06-15 18:03:22 27.32MB stm32 USBX
1
USBX虚拟串口
2021-06-11 19:01:48 27.12MB USBX
1
安卓 Android OTG USB 串口通信,支持Cp2102、FT232R, CDC/ACM,
2019-12-21 21:36:08 51KB Cp2102 FT232R CDC/ACM
1