我试过两种F103的UART程序,都是简单的双口UART收发的。, o& g" u5 B6 T1 g1 ^# V3 }3 N v4 V0 i STM32基于CubeMX的高速串口收发程序(中断模式)( F9 K w, E& J g5 i* r STM32基于CubeMX的高速串口收发程序(DMA模式) 今天给大家介绍一个USB的双VCP(CDC)程序。 原程序是在github上面发现的: http://github.com/RadioOperator/stm32f103_dual_vcp 我做了一个小改进,就是加入了传送数据时LED闪灯。 6 `, K$ @. l- ^& ?, o6 X5 p6 M 这个程序的UART部分比较复杂,空闲中断DMA + 双区缓存DMA。 有参考价值。 搞过USB软件的都知道,USB软件并不简单,经常掉入坑里面而爬不出来。要实现1个VCP,或者再加上HID等,也是常见。$ c0 X7 _. y. l; V: Y$ l0 R 可是双VCP的,就难度大增,不信你们随便找个板子试一试自己独立完成, 不参考本例程。8 x$ H/ c% }! s }6 m: i - \! i) z! W4 K6 P 这个例程,发现有个限制就是,USB端一次连续发送的长度不能超过64个字符,超过的部分会被丢掉。 UART端正常。 不应该有这种问题的。 B& x& K5 T$ K& n' _5 b 0 p/ j$ v# q. T! e) R5 _: T 有什么用,找一个BluePill小板,下载程序以后一条USB线的双UART的VCP就有了,马上可以使用。 还可以用两条UART的RX线,同时监测其他UART的TxRx收发线工作情况。 2021-01-28 : 更新USB底层。 解决了原程序USB初始化不正常问题(经常要插拔两次才能枚举),原因不明。 Y4 e6 q1 t+ r i, B$ r1 } X' Y 2021-01-30 : 再次更新,改进LED闪灯部分。3 @, [( q( l) x9 V $ R9 |6 ~0 }0 S. @ : H# t& Q# `( l% \1 E 9 J. ]2 N0 M2 F3 Z" v' B: i8 e , J& @8 Z# l( V5 X+ e* \& ?' j |
stm32f103_dual_vcp-master20210130.zip
下载638.6 KB, 下载次数: 138
多谢楼主分享多谢多谢。 |
顶一下 |
一楼附件今天更新。 |
好东西支持 |
小马哥STM32F103开源小四轴RoboFly全部资料大放送
最全USB HID开发资料,悉心整理一个月,亲自测试
STM32固件库分享,超全系列整理
USB Audio设计与实现
【MCU实战经验】+STM32F107的USB使用
圈圈发布USB图书第二版有感,以及分享一些我学习USB过程...
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32 USB-HID通信移植步骤STM32 USB HID键盘例程
基于STM32F103两轮平衡小车设计(开源)
STM32F107VCT6官方原理图和PCB