USB转串口,大家经常用到,市面上也有很成熟悉的产品,CH341就是其中之一。 而且ST的demo也有相关的例子(USB virtual com port ),我们直接用ST的VCP不就完了,为什么还要去模拟CH341呢?4 T' N& S/ Y6 ^1 o( B. P 答案有两个:, }6 g: v1 H% j- W/ V 1、ST的USB virtual com port驱动没有经过微软签名,安装不方便。(特别是WIN8) 2、作者无聊练手。' P' h% r' m V2 o2 j 话不多说,先上原理图: ! ?, X3 }8 w* Z2 N8 W 再上开源地址:http://github.com/blackmiaool/STM32_USB_CH341.git r" Q9 F: [! h6 q' T 喜欢的朋友自己下吧。 ! F7 j. h4 r1 i: n4 o8 D& j. P1 g |
圈圈发布USB图书第二版有感,以及分享一些我学习USB过程...
最全USB HID开发资料,悉心整理一个月,亲自测试
USB Audio设计与实现
【MCU实战经验】+STM32F107的USB使用
STM32F4-DISC 实现USB主机(U盘)和USB设备(虚拟串口)自动切换
STM32 USB-HID通信移植步骤STM32 USB HID键盘例程
【经验分享】在进行 USB CDC 类开发时,无法发送 64整数倍的数据
如何让CDC类USB设备批量接收64字节以上数据
用STM32F4实现的USB摄像头UVC,配合上位机可识别车牌
STM32 USB CDC 虚拟多串口
使用这个固件,可以使用CH341的驱动,不知这么说你明白否?
" E X9 W, U- C0 e
, J5 c$ M( x+ d! i2 z( I% J
+ L& r6 S% s, X6 X* q! g0 w* H6 N
请把错误信息发上来。
! ]" `' v4 f8 i) l
! ^9 {% g% l$ i" G3 X
, ]) m$ J9 Z7 P& q
9 r5 J. ^# y+ A
K2 \ D6 T" ^* O: i; k5 \
4 h9 i* i6 p" f1 D" F+ E/ O: U
6 J% m. M4 A7 N7 i
用3.61版本的库,收集ST社区的代码实现了USB转3路CDC串口。只有HAL库版本,实现了DTR、Break& [1 [! g# B/ ]4 R
信号控制,其它版本可能是官方例程没有定义相应的函数,上位机发出break信号时,总是发现错误。# h' U* @ X$ z/ K) E/ t" S8 b( p7 [
现在不知道CH341的驱动是否支持多串口,另外,固件库的版本太多,代码移植就非常困难,HAL驱动
移植到GCC,现在都比较麻烦,因为CMIS层麻烦。
3 |/ M1 i3 n E! b* P3 T' ~$ F
! ?: i# e+ m8 M% t/ W9 c4 P% |
自己测试下便知,串口的速度,本身就那样,只是方便而已。
是USB协议要求的,1.5K上拉在D+时表示是全速设备,在D-表示不是全速设备。
这个错误,不解释。