精华内容
下载资源
问答
  • 串口转usb连接线
    千次阅读
    2022-02-11 14:14:22

    情景

    一般硬件设备提供的内置串口数量是有限的,当串口不够用时,就需要通过USB来外接这些设备

    CH341是一种芯片,它可以将以串口方式进行通信的设备,转接到USB口上进行通信

    使用该方案,需要购买对应的CH341转换器,将串口设备转接到USB口上,转换器支持一个USB口接多个串口设备

    准备

    引入CH34XMultiUARTDriver.jar

    这是一个串口转USB的驱动,支持CH341等型号的芯片

    核心代码

    
    	//连接CH34X设备
    	CH34X.connect();
    	CH34X.read();
    	
    	//定期读取CH34X设备参数
    	CH34xHandler.read();
    	WorkThread.postByLoop(CH34xHandler::write);
    
    
    
    	package com.android.driver.ch34x;
    	
    	import android.app.PendingIntent;
    	import android.content.Intent;
    	import android.hardware.usb.UsbDevice;
    	import android.hardware.usb.UsbManager;
    	import android.os.Looper;
    	
    	import com.easing.commons.android.app.CommonApplication;
    	import com.easing.commons.android.bin.Bytes;
    	import com.easing.commons.android.code.Console;
    	import com.easing.commons.android.helper.exception.BizException;
    	import com.easing.commons.android.thread.Threads;
    	import com.easing.commons.android.thread.WorkThread;
    	
    	import java.util.ArrayList;
    	import java.util.List;
    	
    	import cn.wch.lib.ch34xMultiDriver;
    	import cn.wch.lib.ch34xMultiManager;
    	
    	@SuppressWarnings("all")
    	public class CH34X {
    	
    	    protected static UsbManager service;
    	    protected static ch34xMultiManager manager;
    	    protected static List<UsbDevice> deviceList;
    	    protected static final List<Reader> readers = new ArrayList();
    	    protected static boolean connected = false;
    	
    	    //判断设备是否连接
    	    public static boolean connected() {
    	        return connected;
    	    }
    	
    	    //检查权限
    	    public static boolean checkPermission() {
    	        boolean hasPermission = true;
    	        for (UsbDevice device : deviceList) {
    	            boolean ret = service.hasPermission(device);
    	            if (!ret)
    	                hasPermission = false;
    	        }
    	        Console.info("CH34X Permission Check : " + hasPermission);
    	        return hasPermission;
    	    }
    	
    	    //检测并连接设备
    	    public static void connect() {
    	        service = CommonApplication.ctx.getSystemService(UsbManager.class);
    	        manager = new ch34xMultiManager(CommonApplication.ctx, service);
    	        WorkThread.postByLoop("#CH34X连接线程", () -> {
    	            try {
    	                if (connected)
    	                    return;
    	                if (Looper.myLooper() == null)
    	                    Looper.prepare();
    	                //搜索设备
    	                manager.initDeviceList();
    	                deviceList = manager.usbDeviceList;
    	                Console.info("CH34X Find Device : " + deviceList.size());
    	                //检查并申请权限
    	                if (!checkPermission()) {
    	                    for (UsbDevice device : deviceList) {
    	                        Intent intent = new Intent("cn.wch.USB_PERMISSION");
    	                        PendingIntent pendingIntent = PendingIntent.getBroadcast(CommonApplication.ctx, 0, intent, 0);
    	                        service.requestPermission(device, pendingIntent);
    	                    }
    	                }
    	                //打开设备
    	                boolean isDeviceOpen = true;
    	                for (UsbDevice device : deviceList) {
    	                    boolean ret = manager.OpenUsbDevice(device);
    	                    if (!ret)
    	                        isDeviceOpen = false;
    	                }
    	                Console.info("CH34X Open Device : " + isDeviceOpen);
    	                //连接失败
    	                if (!isDeviceOpen)
    	                    throw BizException.of("CH34X Connect Fail");
    	                //连接成功
    	                connected = true;
    	                Console.info("CH34X Connect Success");
    	                //配置设备
    	                boolean isDeviceConfigured = true;
    	                int index = 0;
    	                for (UsbDevice device : deviceList) {
    	                    ch34xMultiDriver driver = manager.ch34xDriverList.get(index);
    	                    index++;
    	                    boolean ret = driver.SetConfig(9600, (byte) 1, (byte) 8, (byte) 0, (byte) 0);
    	                    if (!ret)
    	                        isDeviceConfigured = false;
    	                }
    	                Console.info("CH34X Configure Device : " + isDeviceConfigured);
    	            } catch (Throwable e) {
    	                manager.CloseAll();
    	                Console.error("CH34X Connect Fail");
    	            }
    	            Threads.sleep(3 * 1000L);
    	        });
    	    }
    	
    	    //读数据
    	    public static void read() {
    	        WorkThread.post(() -> {
    	            final byte[] buffer = new byte[10 * 1024];
    	            while (true) {
    	                if (!connected)
    	                    continue;
    	                try {
    	                    int index = 0;
    	                    for (UsbDevice device : deviceList) {
    	                        ch34xMultiDriver driver = manager.ch34xDriverList.get(index);
    	                        manager.SemDeviceList.acquire();
    	                        int length = driver.ReadData(buffer, 10 * 1024);
    	                        manager.SemDeviceList.release();
    	                        if (length > 0) {
    	                            byte[] newBytes = Bytes.copy(buffer, 0, length);
    	                            onMessageRead(index, newBytes);
    	                        }
    	                        index++;
    	                    }
    	                    Threads.sleep(500);
    	                } catch (Throwable e) {
    	                    Console.error("CH34X Read Fail");
    	                }
    	            }
    	        });
    	    }
    	
    	    //数据读取成功
    	    public static void onMessageRead(int deviceIndex, byte[] bytes) {
    	        String hex = Bytes.byteArrayToHex(bytes);
    	        Console.info("CH34X Read", "Device-" + deviceIndex, hex);
    	        for (Reader reader : readers)
    	            reader.onMessageRead(deviceIndex, bytes);
    	    }
    	
    	    //写数据
    	    public static void write(Integer deviceIndex, byte[] bytes) {
    	        if (!connected)
    	            return;
    	        if (deviceIndex == null)
    	            deviceIndex = 0;
    	        try {
    	            int index = 0;
    	            for (UsbDevice device : deviceList) {
    	                if (index != deviceIndex)
    	                    continue;
    	                ch34xMultiDriver driver = manager.ch34xDriverList.get(index);
    	                manager.SemDeviceList.acquire();
    	                int ret = driver.WriteData(bytes, bytes.length);
    	                manager.SemDeviceList.release();
    	                String hex = Bytes.byteArrayToHex(bytes);
    	                Console.info("CH34X Write", "Device-" + deviceIndex, hex);
    	                index++;
    	            }
    	        } catch (Throwable e) {
    	            Console.error("CH34X Write Fail");
    	        }
    	    }
    	
    	    //添加读取回调
    	    public static void addReader(Reader reader) {
    	        readers.add(reader);
    	    }
    	
    	    //移除读取回调
    	    public static void removeReader(Reader reader) {
    	        readers.remove(reader);
    	    }
    	}
    
    

    源码下载

    Android CH34X串口转USB.zip

    更多相关内容
  • Linux下USB转串口连接更简单,可以免装驱动。
  • 目录 所需工具 接线方式 驱动准备 Windows串口检测 SecureCRT连接设置 ...第三种是通过串口转USB连接到ssh。 本文主要介绍如何通过串口转USB来连接到本地计算机,完成相应的配置。 所需工具

    目录

    所需工具

    接线方式

    驱动准备

    Windows串口检测

    SecureCRT连接设置

    登录系统

    进入树莓派系统


    在烧录好树莓派系统之后,我们可以通过三种方式来实现进入树莓派的系统:

    第一种是在烧系统的时候就把WiFi的配置文件写入系统,使树莓派可以通过WiFi上网,完成ssh的连接;

    第二种是在烧好系统之后用网线连接到树莓派的有线网口,完成ssh的连接;

    第三种是通过串口转USB连接到ssh。

    本文主要介绍如何通过串口转USB来连接到本地计算机,完成相应的配置。

    • 所需工具

    1. 串口转USB(一般为USB转TTL,ch340芯片)
    2. 树莓派(测试环境:树莓派3B)
    3. 电脑(测试环境为:笔记本win10系统)
    4. 杜邦线(母对母4根)
    • 接线方式

    1. 电压的选择有自己的转接板上的电压选择决定;
    2. RXD与TXD是反着接的;
    3. 地线必须要使用GPIO.6

    • 驱动准备

    由于我们用的是ch340这个芯片,所以要安装与之相应的驱动。如果大家的转接板用的不是这个芯片,大家可以自己搜索与之相应的驱动。

    • Windows串口检测

    • SecureCRT连接设置

    • 登录系统

    一般用户名为pi,密码为:raspberry。

    • 进入树莓派系统

     

    • 欧克!完成。

    展开全文
  • 通用USB推出以后,串口逐渐被...为了能够使用串口,没办法只能利用现在广泛存在并使用的USB接口来模拟串口使用(USB转232、USB转485/422)。在实际应用过程肯定会遇到各种难题,下面给大家分析可能遇到的问题和对策。
  • USB转串口线驱动程序能够让你不断的进行各类问题解决,拥有方便的设备调试功能,为你带来不错的驱动服务,实现非常便捷的驱动体验,快速连接电脑!官方介绍是一款非常常用的usb驱动程序,它能快速读取连接所有连接...
  • 该设计方案CH340的USB转串口、USB转打印口、USB转IrDA的原理图和PCB,串口含DB9的RS232、低成本RS232、TTL的UART等各种版本,打印口含DB36连接器、DB25插孔两种版本,USB红外适配器、USB转IrDA含6脚、8脚红外收发器...
  • USB转换器实际上是虚拟了一个串口,设置通讯接口时还要选择串口,不能选择USB口。如果以上都没有问题,则就是USB转换器的质量不好了。换一个转换器试试。回答者: 寒音 - 中级工程师&nbsp&nbsp第10级20...

    USB转换器与PLC之间用的什么通讯电缆?USB转换器与PLC之间是不能直接通讯的。

    如USB转换器与PLC之间的通讯电缆没有问题,则可能是参数设置或串口号选择的有问题。USB转换器实际上是虚拟了一个串口,设置通讯接口时还要选择串口,不能选择USB口。

    如果以上都 没有问题,则就是USB转换器的质量不好了。换一个转换器试试。

    回答者: 寒音 - 中级工程师&nbsp&nbsp第10级

    2010-12-04 10:10:38

    电脑和PLC进行通讯不仅仅是要一条串口线还要适配器的。

    建议购买西门子原装MPI编程电缆。

    PC Adapter 编程用:

    6ES7 972-0CA23-0XA0  RS232接口:支持MPI,PROFIBUS,ppi

    6ES7 972-0CB20-0XA0  USB接口:支持PPI,MPI,PROFIBUS,ppi

    回答者: smarteye - 助理工程师&nbsp&nbsp第8级

    2010-12-04 10:14:06

    USB转串口的连接线是有驱动的,在驱动程序里设定虚拟的串口号,比如COM1,有的USB转串口的连接线在设置完串口号以后还需要重启电脑。

    然后在PC/PG端口设置里选择通讯端口为COM1.

    回答者: 笑晴 - 助理工程师&nbsp&nbsp第8级

    2010-12-04 10:32:04

    如果说你单纯的USB转com 是不行的,西门子的USB MP1 电缆里有转化芯片的。。。我原来用网卡转过 还要驱动  usb 也要驱动。

    回答者: kunkun-张 - 中级技术员&nbsp&nbsp第6级

    2010-12-04 12:10:09

    你如果只是USB转串口,肯定连不上PLC。

    PLC是485接口,USB如果转485口,也得将A+、B-与PLC端口相对应。

    另外波特率、数据位、奇偶校验等都要设置正确才能连接。

    回答者: 凌飞翼 - 初级工程师&nbsp&nbsp第9级

    2010-12-04 14:03:23

    我估计你没有安装连接线的驱动,在西门子官网上有下载的

    回答者: sunaway - 初级技术员&nbsp&nbsp第5级

    2010-12-04 14:08:27

    一、直接连接是接不上的,因为存在协议转问题。

    二、再说USB转RS232的质量或者制作原因,很多厂家生产的USB_RS232中的一些接线省略了。而通讯系统通讯时很可能要用到其中的一些信号线传输或者握手。因此造成了通讯不上的故障。请购买质量好的转接线才行。

    三、建议购买西门子的正版的通讯线缆,可靠!

    回答者: daliu - 初级工程师&nbsp&nbsp第9级

    2010-12-04 14:12:15

    楼主你那USB数据线不对,建议买个USB PC Adapter 适配器来用,不过原装价格就有点贵了,USB PC Adapter 适配器支持200,300/400PLC。

    原装USB PC Adapter 适配器订货号:

    6ES7 972-0CB20-0XA0  USB接口:支持PPI,MPI,PROFIBUS。

    回答者:

    莘莘学子 - 顶级工程师&nbsp&nbsp第12级

    2010-12-04 18:24:55

    屏是TP270吗?如果是,1.建议找一个有串口的电脑,用串口的PC适配器下载(需要用PLC借电,用带编程口的DP头连接屏跟PLC,然后把适配器的485口插到PLC上的DP头的编程口上),或者用普通的串口线(23交叉、46交叉、78交叉、5直连);2.用USB口的PC适配器。

    《xP177x(不含TP177micro)各种下载方法参考手册》

    http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0262

    回答者:

    金华山 - 助理工程师&nbsp&nbsp第8级

    2010-12-08 21:56:57

    上一页

    1

    下一页

    展开全文
  • USB转RJ45(console口)的驱动包合集,支持Windows xp/7/8/10系统,针对连接console口后设备管理器中不显示串口的情况安装该驱动
  • linux下如何使用USB转串口线,使用方便,不需要windows!
  • UNITEK(优越者)USB转串口驱动 win7_32/64位,XP,Linux系统的驱动
  • 在win10系统下,在更新USB转串口驱动后,出现黄色叹号,无法识别设备,然后串口无法正常使用,下载安装USB转串口驱动后,每次插USB转串口线,电脑就会蓝屏,终止代码:IRQL NOT LESS OR EQUAL 下载此驱动,拔下电脑...
  • 关于笔记本用usb转串口连接出现乱码的解决
  • USB转RS485简易检测方法一、安装好驱动后,将两个USB转RS485转接器的AB端对应连接上,然后均插上电脑的USB插口,打开设备管理器查看转换器的端口分别是多少。二、打开串口调试助手,设置好转换器1的端口,然后打开...
  • 电脑串口及并口USB连接线缆VGA-高清线大全.doc
  • 兼容Windows10及其以下系统,USB转串口驱动,亲测有效。
  • 要配置网络设备,如...首先,要使用一根串口线把电脑和网络设备连接起来。再通过专用的软件连接到网络设备上,然后在电脑上对网络设备进行配置。本文就为大家介绍用串口线连接电脑和交换机方法,希望对大家有所帮助
  • USB转RS232串口线-交叉线or直连线

    千次阅读 2021-05-17 21:01:33
    USB转RS232串口线-交叉线or直连线USB转RS232串口线直连线交叉线 USB转RS232串口线 直连线 一般使用的USB转RS232串口线都是直连线: TX对TX; RX对RX; GND对GND; 交叉线 一般使用的USB转RS232串口线都是直连线,...

    USB转RS232串口线-交叉线or直连线

    USB转RS232串口线

    直连线

    一般使用的USB转RS232串口线都是直连线:

    1. TX对TX;
    2. RX对RX;
    3. GND对GND;

    交叉线

    一般使用的USB转RS232串口线都是直连线,但是有些设备不支持直连,需要使用交叉线,手边有电烙铁的朋友可以根据下图自己焊接一个交叉线:

    1. TX对RX;
    2. RX对TX;
    3. GND对GND;
      也就是2、3互换下位置,5对5不变,其他阵脚接线悬空,这样交叉线就做好了。
      自己身边找不到公母头对接转换时可以在某宝上搜索购买,或者直接买一根网络商店直接出售的交叉线也是很方便,当然,自己制作的会更有成就感。
      串口线阵脚图

    Tips:这个串口阵脚是9pin,它与VGA视频线外貌很相似,不要弄混淆,VGA阵脚图如下:
    延申:常用视频接口介绍
    在这里插入图片描述

    展开全文
  • 二是USB转TTL串口连接单片机或者PDA等手持式设备 建议: 手机等设备或单片机系统的USB数据线用“T9T”版,USB转9线制TTL串口 计算机的串口线用“T9R”版,USB转9线制RS232串口 低档的计算机串口线用“R9R”版...
  • 电源线是5V,为USB设备提供最大500mA的电流,它与数据线上的电平无关,数据线是差分信号,通常D+和D-在+400mV~-400mV间变化。 2,232串口,通过232电平标准工作 232电平: 逻辑1(MARK)=-3V~-15V 逻辑0(SPACE)=+3~...
  • CH340是一款 USB 总线的转接芯片,实现 USB TTL串口或者 USB 打印口。 成本便宜,¥1.x,且有 SOP8 / MSOP10的小封装型号。 特性 全速 USB 设备接口,兼容 USB V2.0。 仿真标准串口,用于升级原串口外围...
  • USB转串口那些事儿—USB转串口工作原理及应用

    千次阅读 多人点赞 2020-08-12 14:34:32
    USB转串口即实现计算机USB接口到物理串口之间的转换。可以为没有串口的计算机或其他USB主机增加串口,使用USB转串口设备等于将传统的串口设备变成了即插即用的USB设备。 USB虚拟串口应用特点: USB应用广泛,支持...
  • 常见的usb串口线基本上都支持了:FT232R,PL2303,CP210x,CH340 还支持USB CDC协议:ATmega32U4, V-USB software USB,ARM mbed DAPLink firmware
  • ‍可能会有用户需要在笔记本电脑中通过USB转串口装置来连接使用串行端口的设备,因为现在的笔记本电脑很少具备串行接口。一般购买的USB转串口装置会提供对应的驱动程序,我们需要在电脑中正确安装对应的驱动程序才能...
  • Linux下如何测试及使用USB转串口线

    千次阅读 2021-05-10 20:57:52
    1、将设备u口插入pc2、输入#...另外如果有的话最好再用dmesg | grep usb查找如果看到:“drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic”就说明设备已被识别,然后往下看drivers/us...
  • 单片机串口连接电脑,USB转TTL线的使用

    万次阅读 多人点赞 2017-11-08 20:46:00
    注:串口发送数据(USART)是STM32调试中经常使用的功能,但是电脑USB的电平标准与串口所使用的TTL标准不同,所以需要一条USB转TTL线来完成它们之间的通信。本文介绍使用USB转TTL线完成单片机与电脑通信的方法。
  • usb转串口万能驱动.rar

    2019-07-14 21:51:16
    USB转通用串口线及其驱动程式使得的USB埠不需要改变固件就可以直接和周边设备连接,只需要做最小的修改就使得串口和周边设备之间可以通过的USB埠通讯。 UT-810 USB 1.1 TO RS232 Cable驱动程序USB转串口 ...
  • 串口转USB驱动

    2012-09-27 18:32:35
    串口转ISB,驱动程序,可用于需要加载驱动的串口转USB连接线
  • 这是是用来转换USB信号和串口UART信号的,就是通常我们说的USB串口线。 当我们将FTDI的线连接电脑后,在设备管理器里会显示未识别的设备。 连接1.8V UART的串口线连接3.3V UART的串口线: ...
  • 安卓系统使用USB转串口

    千次阅读 2021-09-23 09:34:21
    安卓系统支持多种 USB 外围设备,提供两种模式来支持实现 USB 外设接入系统:USB 配件模式和 USB 主机模式。 在 USB 配件模式下,接入的 USB 设备充当 USB 主机,并为 USB 总线供电。USB 配件产品包括USB转接设备、...
  • USB转RS232串口应用

    千次阅读 2022-04-13 17:37:45
    RS232串口是用于数据串行通信传输的标准之一,该标准定义了信号的电气特性和时序、信号的含义以及连接器的物理尺寸和引脚排列。RS232协议规范定义的是DB25接口,实际上大多数RS232串口使用以DB9接口为主。DB9信号...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,185
精华内容 10,074
关键字:

串口转usb连接线