如何从STM32 USB端口发送数据到树莓派的USB端口?



我想通过USB在STM32和树莓派之间发送数据。我不想使用USB到串行转换器,而是有一个实际的USB连接(也许CDC类)。我必须以高速率(全速)发送数据。请指导如何实现这一目标?

USB串行连接器只是一个实现USB CDC/ACM虚拟COM端口并桥接到UART的微控制器,您将连接到微控制器的UART接口。

在您的情况下,您可以直接在STM32上使用其USB设备控制器外设(USB支持取决于特定设备https://www.st.com/resource/en/application_note/dm00296349-usb-hardware-and-pcb-guidelines-using-stm32-mcus-stmicroelectronics.pdf)实现CDC/ACM。

如何实际实现它将取决于具体的部分,以及您正在使用的库或框架生态系统(例如SPL, CubeMX, Mbed)。所有这些都有参考实现、示例、驱动程序和库。

您的里程可能会有所不同,但我已经测量了ST自己的USB库和示例CDC/ACM虚拟COM,用于STM32F1xx在72MHz MCU上实现700kbits/s。请注意,性能与打开VCP时在主机上设置的波特率无关。设置波特率只是向设备发送一个控制数据包,该数据包可用于在桥接应用中设置UART的波特率。在您的情况下,这样的控制数据包可以被忽略。还有类似的数据包用于调制解调器控制信号,如DTR, RTS, CTS和RI,您可以选择我们的流量控制或其他信令。

最新更新