USB转异步串口在WINDOWS 2K/XP/VISTA系统下的驱动安装流程

******************************************************************************* 关于支持非标准波特率或者更高通讯波特率

对于一些非标准波特率或者常规方法无法设置的高速波持率,CH341驱动程序提供特殊方法, 应用程序可以按串口写数据的方式间接设置CH341的串口通讯波特率,方法是: 设置CH341串口波特率为300,然后以ASCII码字符串的命令包写串口, 命令包的首字节必须是#,井字符,对应的十六进制数为23H, 命令包的中间为不超过7个数字表示的波特率,例如字符串9600或者921600等, 命令包的尾字节必须是_,下划线,对应的十六进制数为5FH, 也就是说,将要设置的波特率以字符串的形式置于#字符和_字符之间,作为一个命令包, 在300bps下发送到CH341的串口,那么将被CH341驱动程序解释为修改CH341的波特率, 而不会被作为数据从串口真正发出,当该操作成功返回后, CH341实际工作于指定的新波特率,当然,计算机系统及串口控件仍然以为是工作于300bps, 如果需要再次以这种方法改变波特率,那么首先要用常规方法将CH341的波特率置为300bps。

例如,用串口监控/调试工具软件演示: 1、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), 发出字符串命令包,为6个ASCII码数据: #9600_ 发送成功后,CH341将实际工作于9600bps 2、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), 发出字符串命令包,为8个ASCII码数据: #460800_ 发送成功后,CH341将实际工作于460800bps 3、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), 发出字符串命令包,为9个ASCII码数据: #1000000_ 发送成功后,CH341将实际工作于1000000bps

CH341串口支持50bps到2Mbps的波特率,当应用程序请求CH341改变串口通讯波特率时, CH341驱动程序将波特率换算为波特率除数,然后修改CH341芯片内部的波特率除数寄存器, 所以设置CH341串口的通讯波特率实际上是设置CH341芯片内部的波特率除数寄存器, 由于CH341内部的串口基准位时钟为48/8=6MHz(或12MHz),并且波特率除数只支持整数, 所以在指定波特率时,应该考虑实际换算误差,在波特率大于19200bps时的计算方法是: X = 6000000 除以波特率后的值 Y = X 四舍五入后的值 误差 = ( Y - X ) / X

以下为CH341支持的常用波特率,未注明的基准位时钟为6MHz,未注明的误差小于0.16% 921600 (12MHz), 460800, 307200 (12MHz), 230400, 153600, 128000 (0.27%), 115200, 76800, 57600, 56000, 38400, 33600, 28800, 19200, 14400, 9600, 7200, 4800, 3600, 2400, 1800, 1200, 900, 600, 300, 150, 134.5, 110, 100, 75, 50, 2000000, 1500000, 1200000, 1000000, 750000, 500000, 375000, 250000, 200000, 187500, 100000, 93750, 75000, 50000, 25000, 10000 其它波特率只要误差小于2.5%,CH341都可以支持,计算误差时要考虑两端的误差之和。 但是为了可靠进行通讯,建议不要使用误差大于1%的波特率


呵呵,我刚刚实验了一下,得到信息如下:

2.send data: $CH341SER? return : $CCC 3.send data: $CH340SER? return : $CC


常规的识别方法是采用软件查询方法: 尝试以串口名称逐个打开,打开成功后通过该串口收发特殊字符串识别CH341串口, 该方法是从“COM1”开始,接着“COM2”逐个尝试打开串口。如果某个串口打开成功, 那么在300bps波特率下向该串口发出特殊字符串“CH341Ser?”,如果在约200毫秒之内 收到应答字符“W”,那么该串口就是当前已经连接的CH341串口。软件设计方法是: 从COM1开始依次打开每个串口,如果打开串口失败则跳过(串口不存在或正在使用), 如果打开成功则设置该串口波特率为300,然后向该串口写入ASCII字符串"$CH341Ser?", 注意大小写,共10个字符一次写入,如果该串口是普通串口,那么通常没有任何返回, 如果该串口是CH341串口,那么应用程序将能接收到一个ASCII字符"W",以此识别CH341。 例如,用串口监控/调试工具软件演示: 将串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口), 发出特征字符串,为10个ASCII码数据: $CH341Ser? 发送成功后,普通串口没有返回,而CH341串口将返回1个ASCII码: W

我们做过测试是没有问题的!


你好 我自己做了个Usb转串口 晶振12M 但是两端的电压分别为5到6伏 但是由串口调试发送$CH341Ser?得到W 是正确的 而且 现在给单片机STC下载程序时不成功(USB和单片机都是电脑供电 且公地) 而且 当USB转串口与电脑正常连接时 给单片机通电的瞬间 USB转串口的指示灯(接VCC和ACT)会灭1到2秒后又亮 不知道为什么 请教!

刚刚又试了下 发现对单片机单独供电可以下载成功!


ch34x,我也要一份 vista 64 驱动,请发给我邮箱,谢谢 个人信息保护,已隐藏


如果需要 vista 64 驱动,请发E-MAIL至:tech@wch.cn


我想问问,可不可以给我一点有关CH341A芯片的资料啊,不是在贵公司网站上下载到的那些,比如CH341DS2.PDF等,我是做毕业设计用的,指导老师说一定要有点关于CH341A芯片的内部说明,可我怎么找也找不到,在网上卖的很多CH341A,也都说是贵公司生产的,他们没有详细的资料,就是有关内部结构粗略介绍的资料,不是具体电路图! 先谢谢楼主哥哥啦!


关于芯片说明书,驱动,开发资料你可以到我们网站下载, http://wch.cn 在线下载


系统当掉的情况到是没有,我是用341转三线TTL串口,下载STC或和单片机通讯的时候很好,唯一的问题是如果单片机板断电重启的话,电脑端会提示找不到串口,必须把341的线重新插拨一次才行(电脑断的串口助手在把串口关掉的情况下,如果不把串口先关掉而直接拔出341串口线的话会导致串口助手崩溃,电脑配置差点的话就死机,系统有点问题的话就兰屏)。不知道是什么原因?

楼主的原因可能是VB的程序对串口控制的问题,我们上半年的时候也是这样,VB程序对串口没控制好,就经常兰屏或死机,而用串口助手的话只可不在打开串口的情况下取出341线的话就没有任何问题。


想作由单片机连接的传感器数据,通过USB传入PC,再作进一步处理,请问有何建议?


unsigned char volatile xdata CH375_CMD_PORT _at_ 0xBDF1; /* CH375命令端口的I/O地址 */ unsigned char volatile xdata CH375_DAT_PORT _at_ 0xBCF0; /* CH375数据端口的I/O地址 */ 为什么是 0xBDF1和 0xBCF0 呢?

还有资料里有这样一段话: U4(单片机89C51 等)用于测试CH372 的USB 数据通讯功能,本例中CH372 的地址A0 由U4 的 P20 驱动,CH372 的片选线CS#由U4 的P21 驱动,所以CH372 的命令口的地址可以是FDXXH(例子程 序中使用地址BDF1H),数据口的地址可以是FCXXH(例子程序中使用地址BCF0H)

只看见资料上说跟硬件电路有关,到底是怎么得来这个数的呢?

void CH375_WR_CMD_PORT( unsigned char cmd ) { /* 向CH375的命令端口写入命令,周期不小于4uS,如果单片机较快则延时 */ delay2us(); CH375_CMD_PORT=cmd; delay2us(); } 上面这个函数是向命令端写入命令,CH372资料上面写的是A0=0的时候才能写命令,为什么这个函数不需要,而且没有遵守资料上所说的时序。 如果是那样的话,单片机为什么要跟 #CS #WR #RD 连接,连接了之后程序根本就没对这几个引脚操作,连接起来干嘛的?以上两个问题谁能回答我!


请教一个问题? 硬件:miniUSB接头+CH340T(V3接103电容对地) 测试软件:STC-ISP.EXE V4.83 串口助手 结果:以字符串发送区:123456 接收区:gvV6 以16进制发送区:123456 接收区:BB D9 05 请问是什么问题?谢谢!


请问你的硬件是如何连接的


发现一个BUG 现在用CH341T做RS485 2个一起测试 正常时没有问题,一旦切换到别的程序时经常会有数据乱掉的情况!

已经排除RS485芯片的问题 测试使用SP481EEN 和65LBC184都是 工业级的芯片

请管理员有空测试下 2个RS485的情况!会不会出现我的现象!!


测试环境是XP 串口软件SSCOM32 测试速率115200


只有登录才能回复,可以选择微信账号登录