USB转串口,大家经常用到,市面上也有很成熟悉的产品,CH341就是其中之一。 而且ST的demo也有相关的例子(USB virtual com port ),我们直接用ST的VCP不就完了,为什么还要去模拟CH341呢? 答案有两个: 1、ST的USB virtual com port驱动没有经过微软签名,安装不方便。(特别是WIN8); u, z1 e7 X6 u; o6 |9 D2 @4 V 2、作者无聊练手。 b: I) ?# T* o4 g 话不多说,先上原理图: 再上开源地址:http://github.com/blackmiaool/STM32_USB_CH341.git1 ^) o4 K5 Q8 u7 q( c( j 喜欢的朋友自己下吧。7 U9 K; j8 n4 x2 h |
最全USB HID开发资料,悉心整理一个月,亲自测试
USB Audio设计与实现
【MCU实战经验】+STM32F107的USB使用
圈圈发布USB图书第二版有感,以及分享一些我学习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的驱动,不知这么说你明白否?
" \# b$ ^; R" D3 Z/ T9 R
* P/ {7 ]/ I5 X) G7 |
/ o* g9 o5 X. f2 P2 `" g
% V7 c0 D7 d0 e0 z0 \& u, _2 j% w
2 G! g7 \ U& @# l
, ]$ B4 W7 G f% s! `7 l. L1 r
$ ~: Z2 s& j8 z
. o/ A/ z; ]# u( [" N7 C
请把错误信息发上来。
5 f$ l. m! l1 k
' x9 F# l5 P/ h. `. ?8 l
! U: _- r/ j/ M* k- [$ ]6 j0 P
" O6 \, x) x2 Q4 t8 g- d- U" w% p
" H& Z4 U5 |" _, R& T$ v" C% n9 I
( C( K( E9 T L1 h6 T/ o& ~
: C, u2 i( Y8 |' d( A- B2 G
用3.61版本的库,收集ST社区的代码实现了USB转3路CDC串口。只有HAL库版本,实现了DTR、Break9 O [" m: p$ Q& f
信号控制,其它版本可能是官方例程没有定义相应的函数,上位机发出break信号时,总是发现错误。9 X& D" A8 E/ p
现在不知道CH341的驱动是否支持多串口,另外,固件库的版本太多,代码移植就非常困难,HAL驱动: X( T& e- q$ a% |2 H( g0 a
移植到GCC,现在都比较麻烦,因为CMIS层麻烦。$ @9 z$ D$ @: Z! P! ^
0 @; m2 B" u7 D- W
自己测试下便知,串口的速度,本身就那样,只是方便而已。
是USB协议要求的,1.5K上拉在D+时表示是全速设备,在D-表示不是全速设备。
这个错误,不解释。