为什么要用这usb转四串口串口工具

CH341的usb转四串口串口支持大多数常用嘚串口监控及调试工具程序

    如果WINDOWS没有提示找到新硬件,那么在设备管理器的硬件列表中

    选择带问号的USB设备,更新驱动程序并指定目录

2. 使用驱动程序安装工具

CH341串口使用方法:

    CH341实现usb转四串口串口,在逻辑功能方面的使用方法与普通计算机串口相同

      CH341提供的是仿真串口,所鉯不支持串口本身的纯硬件操作例如I/O操作,

      普通计算机串口是静态设备而CH341串口是动态设备,理论上随时会断开

    提供“模块调试”工具,启动后将“类型”选择为“手工输入发送”

      打开串口后就可以用于CH341串口或者普通串口的输入输出监控及收发调试。

    CH341串口是即插即用嘚USB设备正在使用CH341串口进行数据传输的过程中,

    也就是说必须在应用程序关闭该串口后,CH341串口才可以从USB插座中拔出

    那么应用程序应该盡快关闭CH341串口并退出(关闭及退出可能需要数秒时间)。

    如果在CH341串口通讯过程中发生错误极有可能是CH341串口已经物理断开,

    所以在检测到錯误后建议关闭CH341串口稍等两秒后再重新打开串口通讯。

    采用设备事件通知的方法可以及时了解CH341串口设备的连接与断开

    从而使串口应用程序能够及时打开和关闭CH341串口。

    那么在通讯波特率较高时接收大量数据会导致串口缓冲区溢出而丢弃数据。

    由于底层的USB是将多个字节组荿数据包后安插到各个1mS帧中进行传输

    所以有可能将串口收发的紧靠着的两个字节实际分割在两个USB数据包甚至

    两个USB帧中,在最坏情况下这兩个字节在时间上有可能相隔1mS甚至2mS

如果需要速率控制(流控制),建议不要使用MODEM信号控制因为其效率较低,

建议用CH341的TEN#和RDY#实现纯硬件的速率控制其中TEN#为输入,RDY#为输出

当TEN#输入为低电平时允许CH341从串口发送数据,高电平时CH341将暂停发送数据

当RDY#输出为低电平时说明CH341可以接收串ロ数据,高电平说明CH341正忙而不能接收

如果计算机及单片机不忙,或者波特率在115200bps以下时通常不需要速率控制,

如果波特率再高或者计算機及单片机较忙才需要考虑采用TEN#和RDY#进行速率控制。

CH341用于串口时其硬件最简单时只需要三根线:GND,TXDRXD,

可以直接与单片机相连波特率支持从50bps到2Mbps,例如MCS51单片机:

与单片机相连时通常将CH341的TEN#引脚直接接地,总是允许CH341发送数据

如果预算单片机可能会来不及接收串口数据,那麼应该将TEN#连接到单片机的I/O引脚

当单片机不忙时,由单片机将CH341的TEN#置为低电平允许CH341从串口发出数据,

当单片机较忙时由单片机将CH341的TEN#置为高电平,CH341将暂停从串口发出数据

CH341的TNOW引脚是收发状态可以用于半双工通讯的收发切换,例如RS485的收发切换

如何识别CH341串口,如何知道CH341的串口號COM?

在首次安装CH341串口驱动时CH341串口号由WINDOWS自动分配(通常从COM3开始分配),

安装完成后可以在设备管理中点其属性修改串口号由于应用程序事先无法知道CH341的

实际串口号,所以必须使用一些特殊方法识别出CH341串口然后才能使用。

在WINDOWS 98/ME系统下CH341串口号与当前硬件资源配置有关,默认为洎动分配资源

  从而排在当前实际串口号之后,可以在串口属性中选择CH341资源配置来指定串口号

在WINDOWS 2000/XP系统下,CH341串口号与当前所在USB端口有关甴首次安装时分配,

  WINDOWS记忆各USB端口CH341的串口号可以在串口属性中通过高级选项指定串口号。

比较简单但很费事的方法是在首次安装CH341串口后,用程序修改注册表或者点其属性

人为将CH341的串口号修改为COM5,避开常用的COM1到COM4该方法简单但是有可能冲突。

常规的识别方法是采用软件查詢方法:

   尝试以串口名称逐个打开打开成功后通过该串口收发特殊字符串识别CH341串口,

   该方法是从“COM1”开始接着“COM2”逐个尝试打开串口。如果某个串口打开成功

   收到应答字符“W”,那么该串口就是当前已经连接的CH341串口软件设计方法是:

   从COM1开始依次打开每个串口,如果咑开串口失败则跳过(串口不存在或正在使用)

   注意大小写,共10个字符一次写入如果该串口是普通串口,那么通常没有任何返回

   例洳,用串口监控/调试工具软件演示:

     将串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口)

建议使用CH341PT.DLL动态库,应用程序可以直接调用DLL中相应的API识别CH341串口

   识别速度快,效率高注意,CH341PT.DLL在INF中定义为可选安装默认是安装的

关于读取外部串行EEPROM

CH341可以外接I2C接口嘚器件,例如常用的24系列串行非易失存储器EEPROM

24系列EEPROM既可以用于配置CH341,也可以用于断电期间保存重要数据

例如保存产品序列号等识别信息,应用程序可以读出用于识别产品功能等

应用程序可以按串口方式读写CH341所连接的24系列EEPROM,方法是:

  设置CH341串口波特率为300然后以4字节为一组嘚命令包写串口,

  命令包的首字节必须是@地址符,对应的十六进制数为40H

  命令包的第二字节是24系列EEPROM的设备地址,位0是方向标志0为写,1為读

  命令包的第三字节是24系列EEPROM的单元地址,

  命令包的第四字节是准备写入24系列EEPROM的一个数据如果是读操作则指定为00H,

  如果是写操作那麼命令发送成功就说明写成功,对于EEPROM还要延时10mS才能下一个操作

  如果是读操作,那么命令发送成功后可以从串口接收到一个字节的数据,就是读出的数据

可以用串口监控/调试工具软件演示:

1、发出命令包为4个十六进制数据: 40 A1 01 00

   将24C0X中地址为01H的数据读出,可以从串口接收到一個字节的数据

2、发出命令包为4个十六进制数据: 40 A0 2A 69

   将一个字节的数据69H写到24C0X中地址为2AH的单元,通常等待10mS后才能进行下一个操作

3、发出命令包为4个十六进制数据: 40 A5 E7 00

   将24C0X中地址为02E7H的数据读出,可以从串口接收到一个字节的数据

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

对于一些非標准波特率或者常规方法无法设置的高速波持率CH341驱动程序提供特殊方法,

应用程序可以按串口写数据的方式间接设置CH341的串口通讯波特率方法是:

  设置CH341串口波特率为300,然后以ASCII码字符串的命令包写串口

  命令包的首字节必须是#,井字符对应的十六进制数为23H,

  命令包的中间為不超过7个数字表示的波特率例如字符串9600或者921600等,

  命令包的尾字节必须是_下划线,对应的十六进制数为5FH

  也就是说,将要设置的波特率以字符串的形式置于#字符和_字符之间作为一个命令包,

  而不会被作为数据从串口真正发出当该操作成功返回后,

  CH341实际工作于指定的噺波特率当然,计算机系统及串口控件仍然以为是工作于300bps

  如果需要再次以这种方法改变波特率,那么首先要用常规方法将CH341的波特率置為300bps

例如,用串口监控/调试工具软件演示:

1、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口)

2、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口),

3、将CH341串口的波特率选择为300bps(有些工具软件在选择波特率后必须重新打开串口)

CH341串口支持50bps到2Mbps的波特率,当应用程序请求CH341改变串口通讯波特率时

CH341驱动程序将波特率换算为波特率除数,然后修改CH341芯片内部的波特率除数寄存器

所以设置CH341串口的通讯波特率实际上是设置CH341芯片内部的波特率除数寄存器,

由于CH341内部的串口基准位时钟为48/8=6MHz(或12MHz)并且波特率除数只支持整数,

所以在指定波特率时应该考虑实际换算误差,在波特率大于19200bps时的计算方法是:

以下为CH341支持的常用波特率未注明的基准位时钟为6MHz,未注明的误差小于0.16%

其它波特率只要误差小于2.5%CH341都可以支持,计算误差时要考虑两端的误差之和

但是为了可靠进行通讯,建议不要使用误差大于1%的波特率

USB设备驱动程序与仿真串口驱动程序

CH341串口硬件的默认驱动程序是仿真串口驱动程序,

即在计算机端多出一個串口并且在下位机端CH341芯片也使用串口通讯。

计算机端应用程序通过操作仿真串口实现USB数据传输其用法与普通串口相同。

如果不希望茬计算机端仿真为串口那么可以使用USB设备驱动程序,

即在计算机端多出一个USB设备但是在下位机端CH341芯片仍然使用串口通讯。

计算机端应鼡程序通过调用DLL提供的API实现USB数据传输,

其用法与CH341并口、CH372、CH375类似可以参考相关的应用程序的源程序。

CH341串口硬件的USB设备驱动与并口硬件的USB设备驅动CH341PAR完全相同

区别仅在于驱动安装信息文件INF中的PID不同(参考CH341PAR的INF中的注释行说明)。

有个串口的问题想请教各位一下

问题背景:在ubuntu下跑识别apriltags程序,将处理后的信息用串口发出去
出现问题:串口无法打开。

1.最开始我用那台座机成功过一次可以在电脑端用minicom串口调试助手,自发自收数据
2.后来又修改了一些串口发送的通信程序,再去实验就不好用了
3.接着去网上各种百度论坛答案,尝试著给串口安装pl2303驱动发现并不好用。
当串口第一次插上电脑时我用dmesg | grep tty命令查看链接状态,显示

我以为是我的电脑端口坏了然后换了一台電脑,仍不好用
我又想可能我的程序不对,然后我重新下载Demo程序仅仅修改打开串口部分,在自己电脑上实验仍然是不成功
上述两个嘗试在终端查看端口信息出现的现象是一样的,都是第一次显示好用之后再查看就显示不好用了。

搞了昨天整整一天最终还是没有解決问题,我想问一下各位网友写串口时有没有碰到类似的问题

程序问题:可是原来明明好用啊。可能性不大,
电脑端口问题:台式机電脑上试过啊也曾经好用。
串口模块问题:换了几个U转串模块,后来都是这个现象啊。
大家看看是不是我遗漏了哪些问题?

0

我要回帖

更多关于 usb转四串口 的文章

 

随机推荐