
我试过两种F103的UART程序,都是简单的双口UART收发的。 STM32基于CubeMX的高速串口收发程序(中断模式) STM32基于CubeMX的高速串口收发程序(DMA模式)( a8 Y% ~. K7 l. V! r 今天给大家介绍一个USB的双VCP(CDC)程序。 原程序是在github上面发现的: http://github.com/RadioOperator/stm32f103_dual_vcp 我做了一个小改进,就是加入了传送数据时LED闪灯。8 v* D6 |% B. Q2 e/ b: Z 这个程序的UART部分比较复杂,空闲中断DMA + 双区缓存DMA。 有参考价值。 4 A+ Q3 [) D& K# U 搞过USB软件的都知道,USB软件并不简单,经常掉入坑里面而爬不出来。要实现1个VCP,或者再加上HID等,也是常见。* Z$ E2 W z2 U4 E* B) T 可是双VCP的,就难度大增,不信你们随便找个板子试一试自己独立完成, 不参考本例程。$ N s c2 W2 [( K; g# U) C 这个例程,发现有个限制就是,USB端一次连续发送的长度不能超过64个字符,超过的部分会被丢掉。 UART端正常。 不应该有这种问题的。% o$ x2 W5 v0 y$ n l7 a5 w+ X * D' T9 F$ }3 { 有什么用,找一个BluePill小板,下载程序以后一条USB线的双UART的VCP就有了,马上可以使用。 还可以用两条UART的RX线,同时监测其他UART的TxRx收发线工作情况。9 _2 [# n1 C: x+ E: U - S; l- D; g# _0 O/ [( [ 2021-01-28 : 更新USB底层。 解决了原程序USB初始化不正常问题(经常要插拔两次才能枚举),原因不明。 2021-01-30 : 再次更新,改进LED闪灯部分。* P( h4 w8 v# T* P7 ?0 F ; H* H6 a; G3 `- p* ] 6 D% D1 i" ] R4 x, k , A: v3 Y# d9 E3 O- K$ F" I1 y* f |
stm32f103_dual_vcp-master20210130.zip
下载638.6 KB, 下载次数: 148
多谢楼主分享多谢多谢。 |
顶一下 |
一楼附件今天更新。 |
好东西支持![]() |