|
USB转串口,大家经常用到,市面上也有很成熟悉的产品,CH341就是其中之一。% o& R! d+ W& Y* J H ? 而且ST的demo也有相关的例子(USB virtual com port ),我们直接用ST的VCP不就完了,为什么还要去模拟CH341呢?( W1 t) Z. ?+ x8 ~- w: Z" j 答案有两个:' ?7 g H/ ~+ p+ D& ^1 g 1、ST的USB virtual com port驱动没有经过微软签名,安装不方便。(特别是WIN8) 2、作者无聊练手。- Q; }$ W g' P4 _9 y 话不多说,先上原理图:6 L ^! m; p7 Y" t
再上开源地址:http://github.com/blackmiaool/STM32_USB_CH341.git& P3 h0 p' Z9 J& S ' y! A) R1 O S0 z# U 喜欢的朋友自己下吧。 I; `8 e+ ^2 T2 R) k |
最全USB HID开发资料,悉心整理一个月,亲自测试
【源码】STLINK-V3MINI 高速USB仿真器,成功改刷【高速CMSIS-DAP】
STM32 USB CDC 虚拟多串口
实战经验 | 选择USBX模块生成USB CDC ACM无PD的项目
STM32 USB HID键盘例程
刘氓兔的杂谈【001】-片上USB 高速PHY
【经验分享】在进行 USB CDC 类开发时,无法发送 64整数倍的数据
在线直播|无需编写任何代码即可在STM32上实现USB-C Power Delivery
圈圈发布USB图书第二版有感,以及分享一些我学习USB过程...
USB Audio设计与实现
微信公众号
手机版
使用这个固件,可以使用CH341的驱动,不知这么说你明白否?
# P t) p6 z7 l9 L, ^
3 B& |- Z$ z+ @4 v# d8 }
2 `! O* w. I7 E" n
5 i7 c1 z1 ^" u8 f
$ ]9 P4 |! c# g. ~6 C: e# d( o
请把错误信息发上来。
4 U: J. G% `( A/ \) ?, t6 m
6 ^; O) _& y. P
+ A& R: g, o8 M4 o% t: D- S3 z
用3.61版本的库,收集ST社区的代码实现了USB转3路CDC串口。只有HAL库版本,实现了DTR、Break
信号控制,其它版本可能是官方例程没有定义相应的函数,上位机发出break信号时,总是发现错误。0 W: r0 Q- Y/ m8 P; S1 @9 Q
+ ^$ A/ G) S2 D& a/ s) H
现在不知道CH341的驱动是否支持多串口,另外,固件库的版本太多,代码移植就非常困难,HAL驱动5 Y' g. H" J z$ X- {7 n$ @
移植到GCC,现在都比较麻烦,因为CMIS层麻烦。3 q( p$ N" q- N
) _' M6 S) d- v: B7 _2 h( s
; Y9 H+ Q( S9 {' w$ E5 Z
自己测试下便知,串口的速度,本身就那样,只是方便而已。
是USB协议要求的,1.5K上拉在D+时表示是全速设备,在D-表示不是全速设备。
这个错误,不解释。