
我试过两种F103的UART程序,都是简单的双口UART收发的。4 c/ t% G& g0 x" E# N6 g STM32基于CubeMX的高速串口收发程序(中断模式)6 c" E' t7 x. _ STM32基于CubeMX的高速串口收发程序(DMA模式) , [! X9 J/ f, X% K) m 今天给大家介绍一个USB的双VCP(CDC)程序。 原程序是在github上面发现的: http://github.com/RadioOperator/stm32f103_dual_vcp6 y4 S3 W8 Y( U2 |% S 我做了一个小改进,就是加入了传送数据时LED闪灯。 7 k/ G0 I, }' ~: e+ _$ b* `+ l 这个程序的UART部分比较复杂,空闲中断DMA + 双区缓存DMA。 有参考价值。 + r" K8 t/ N- i 搞过USB软件的都知道,USB软件并不简单,经常掉入坑里面而爬不出来。要实现1个VCP,或者再加上HID等,也是常见。; H9 I0 L7 d. l9 w: R 可是双VCP的,就难度大增,不信你们随便找个板子试一试自己独立完成, 不参考本例程。- g9 M( l @3 E5 m5 k5 g. { 这个例程,发现有个限制就是,USB端一次连续发送的长度不能超过64个字符,超过的部分会被丢掉。 UART端正常。 不应该有这种问题的。3 [+ P% ~1 o/ u2 }' L! w9 z& |! w 有什么用,找一个BluePill小板,下载程序以后一条USB线的双UART的VCP就有了,马上可以使用。6 F" R1 P1 e' t/ Z/ `+ n; n7 a; C7 I5 g/ a; O 还可以用两条UART的RX线,同时监测其他UART的TxRx收发线工作情况。 5 [" n. @/ j; V9 x* {9 Z 2021-01-28 : 更新USB底层。 解决了原程序USB初始化不正常问题(经常要插拔两次才能枚举),原因不明。 2021-01-30 : 再次更新,改进LED闪灯部分。 % q: X+ \0 v9 \- G : N5 a3 n9 m2 e# |5 u) D! H! Z ' v* g) K0 `/ f& p5 G* W % F! ^# S: A& O0 R' k8 j / P4 s% X& L) j1 O |
stm32f103_dual_vcp-master20210130.zip
下载638.6 KB, 下载次数: 148
多谢楼主分享多谢多谢。 |
顶一下 |
一楼附件今天更新。 |
好东西支持![]() |