ubuntu16.04使用USB转TTL(ch340)串口转usb调试过程

以前搞过一次这个,但是时间长了又忘了。

今天用ch340在linux下调试,用以前写好的串口调试程序不能发送数据了。只记得window下需要安装驱动,实际linux下也需要驱动才能正常使用。默认linux是有这一驱动的,但是有些老旧,不能用。

今天的调试过程中,首先把ch340 一端插入电脑
输入命令: lsmod | grep usbserial

输出:usbserial              53248  1 ch341
成功发现了设备,识别出时 ch341  是我记错了??
输入:lsusb
输出一下信息:
  Bus 002 Device 003: ID 17ef:4810 Lenovo Integrated Webcam [R5U877]
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 1a81:1004 Holtek Semiconductor, Inc. 
Bus 006 Device 003: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
发现了ch341的一些相关信息
输入命令(查看USB转串口接入状态):dmesg
输出相关信息,部分信息如下:
  [  429.184170] usb 6-1: new full-speed USB device number 3 using uhci_hcd
[  429.345937] usb 6-1: New USB device found, idVendor=1a86, idProduct=7523
[  429.345944] usb 6-1: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[  429.345948] usb 6-1: Product: USB2.0-Ser!
[  429.368123] usbcore: registered new interface driver usbserial
[  429.368396] usbcore: registered new interface driver usbserial_generic
[  429.368875] usbserial: USB Serial support registered for generic
[  429.374125] usbcore: registered new interface driver ch341
[  429.374143] usbserial: USB Serial support registered for ch341-uart
[  429.374165] ch341 6-1:1.0: ch341-uart converter detected
[  429.386851] usb 6-1: ch341-uart converter now attached to ttyUSB0
ID信息与lsusb检测到的一致,ch341-uart converter now attached to ttyUSB0  成功驱动,端口为ttyUSB0。

再此,确实能看到自带了驱动,但不要高兴太早。接着往下来

第二步:安装串口终端软件,搜到了一个minicom,动手试试:

首先:建议刷新一下源sudo apt-get update
然后安装:sudo apt-get install minicom

打印一些信息,输入‘y’。
等待安装成功,然后用sudo minicom -s 设置minicom的端口对应到ttyUSB0(对应使用dmesg命令看到的信息)。
出现配置菜单:
 
选择“Serial port setup”,出现串口配置菜单:
 
输入A,修改serial device 由/Dev/tty0修改为/dev/ttyusb0,波特率按实际硬件参数情况修改,我的修改为115200 8N1,也有19200 8N1的硬件等。

然后返回

选择 Save setup as dfl

接着选择Exit退出。

可以再进一次sudo minicom -s,看看参数是否保存好。

此时,使用串口调试工具,能看到ttyUSB0,但还是无法进行通信。

运行dmesg,显示如下

这个原因是,驱动版本太老旧,需要重装驱动

1.首先去官网下载最新的驱动,参见某高人的博客:CH340各平台下驱动

2.下载下来linux版本的驱动

将其拷贝到Linux系统中,在使用之前首先需要将老驱动删除掉,这样才能防止即使安装了新驱动老驱动仍然生效。系统的默认驱动目录为:/lib/modules/$(uname -r)/kernel/drivers,老驱动的完整路径名:/lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch341.ko,我们进入到该目录下,然后将其删除掉,如下所示:

3.解压新驱动并进行编译安装,具体流程如下图。

实际上操作起来就是四步:

  1. [email protected]:/#unzip CH341SER_LINUX.ZIP

  2.  

    [email protected]:/#cd CH341SER_LINUX

  3.  

    [email protected]:/#make

  4.  

    [email protected]:/#make load

其中尤其要注意第三步 make 之后的执行过程和结果,如果没有顺利生成 ch34x.ko 那么就需要查看提示的报错原因了,然后进行相应问题的查找或者咨询 [email protected]。在make load后插入 CH340 硬件,输入命令:dmesg 查看系统日志信息,如下图所示:

如果成功会出现上图所示的信息,并且产生的设备节点名称为 ttyUSB0,我们可以到 /dev 目录下进行查看,会发现设备文件 /dev/ttyUSB0,然后剩下的操作就类似于 Windows 系统操作 COM 口一样简单了。

4.如果第3步的make出现错误,error: unknown type name ‘wait_queue_t’和implicit declaration of function ‘signal_pending’ [-Werror=implicit-function-declaration]的错误提示。

即编译官方的ch34x驱动源码时,出现:

1.error: unknown type name ‘wait_queue_t’;

2.implicit declaration of function ‘signal_pending’ [-Werror=implicit-function-declaration]

的错误提示。

需要进行如下解决:

需要使用vi编辑器,wait_queue_t 没有被使用过,查找wait_queue_t(/wait_queue_t 定向找到它,只有一行),所以直接在源码中注释掉即可。

2引入头文件#include <linux/sched/signal.h>。

然后问题就解决了,可以直接编译 使用make 然后make load,加载到系统驱动中。

至此,串口终于可以通信了。

如果希望每次开机之后系统可以自动加载驱动的话,也很简单只需要两步,把生成的 ch34x.ko 文件拷贝到原先老驱动的目录下,然后执行 depmod 命令就可以了,如果不够明确可以参考博客:Linux系统开机自动加载驱动module

原文地址:https://www.cnblogs.com/feiyufu/p/9302367.html

时间: 2024-08-29 05:28:28

ubuntu16.04使用USB转TTL(ch340)串口转usb调试过程的相关文章

USB/232/TTL(串口通信)

1.USB:电脑的USB口信号时USB信号,为差分信号,电压范围:+400mV~-400mV间变化:直流电压5V 驱动电流500MA 2.232电平: 逻辑1(MARK)=-3V--15V 逻辑0(SPACE)=+3-+15V 3.485电平: 它是差分信号,两信号线 +2V-+6V表示“0”, - 6V-- 2V表示“1”. 4.TTL电平: 一般输出高电平是3.5V,输出低电平是0.2V. 简介: 1:单片机:TTL电平 2:max232: TTL-232 3:pl2303:TTL- USB

ubuntu16.04在英文状态下安装中文语言包的过程(法一:图形界面的方式) 以及 安装中文语言包后无法选择汉语问题的解决 以及 安装搜狗中文输入法的方法

1.笔记本安装的ubuntu是桌面的,安装语言包非常方便,桌面版本选择 齿轮 --> System --> System Settings... --> Language Support 再选择中文语言包安装.如下下图所示: 2.完成设置后点击[Install/Remove Language],在弹出的窗口找到[Chinese(simplified)],最后点击[Apply].如下图所示: 3.安装Ubuntu语言包过程中可能要输入密码,输入后确定即可.如下图所示: 4.安装完中文语言包

USB、TTL电平、232电平之间的相互转换

一:什么是TTl电平.232电平?    TTL电平:一般用作数字芯片的电平,单片机大多是TTL电平(电压标准不同),正逻辑.    232电平:电脑串口的电平,负逻辑 二:USB转串口包括两种:       1.USB转232串口       2.USB转TTL串口 三:三者转换(1)TTL与232串口互转: 单片机串口(TTL电平)想和电脑串口(232电平)通信,就需要使得他两的电平逻辑一样才可以通信.这时候,就需要用到转换TTL--232电平的芯片,常用的有MAX232.MAX3232.S

Install Windows10 + Ubuntu16.04 based on UEFI+GPT

博主电脑:lenove B40-80 一.进入Bios,设置我们之后装双系统将要用到的选项.(1)将USB boot设为Enabled(2)将boot mode设为UEFI(3)将secure boot关闭 二.USB安装Windows10,安装完毕,进入Windows10,在左下角的windows的图标上右键打开磁盘管理,可以利用压缩卷的方法,压缩出一块你想要拿来装ubuntu的分区,压缩完之后,这块分区会显示未分配,这个时候就不用动它了 二,准备一个U盘,用UltraISO将Ubuntu16

UEFI+GPT双硬盘安装Win10+Ubuntu16.04双系统

安装环境 SSD+HDD双盘,Win10安装在SSD里,HDD分出来60G安装Ubuntu. 自行百度你的主板是否支持UEFI启动方式. Win10 下载Win10安装镜像.烧盘等步骤就不说了,重启后选择U盘启动进入Win10安装界面后,一直到如下步骤 按Shift+F10或者Shift+Fn+F10调出命令提示符窗口, 使用diskpark将ssd和机械硬盘的分区格式都转换为GPT格式 1 diskpart #启动分区管理工具 2 list disk #列出连接到电脑的所有磁盘及其编号 3 s

深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow

深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow 最近在公司做深度学习相关的学习和实验,原来一直在自己的电脑上安装虚拟机跑,速度实在太慢,主机本身性能太弱,独显都没有,物理安装Ubuntu也没多大意义,所以考虑用公司性能最强悍的游戏主机(i7 6700+GTX 1070) 做实验,这台主机平时是用来跑HTC VIVE的,现在归我用了o(*≧▽≦)ツ. 原本以为整个一套安装下来会很顺利,一路火花

(转)深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0 发表于2016年07月15号由52nlp 接上文<深度学习主机攒机小记>,这台GTX1080主机准备好之后,就是配置深度学习环境了,这里选择了比较熟悉Ubuntu系统,不过是最新的16.04版本,另外在Nvidia GTX1080的基础上安装相关GPU驱动,外加CUDA8.0,因为都比较新,所以踩了很多坑. 1. 安装Ubuntu16.04 不考虑双系统,直接安装 Ubuntu16.04,从ubun

安装Win7与Ubuntu16.04双系统操作教程

安装主要分为以下几步: 一. 下载Ubuntu 16.04镜像软件: 二. 制作U盘启动盘使用ultraISO: 三. 安装Ubuntu系统: 四. 用EasyBCD 创建启动系统启动引导: (根据个人情况,选择性的安装) 五. 开启系统: 一. 下载ubuntu16.04  直接到官网免费下载 http://www.ubuntu.com/download/desktop 根据自己电脑配置,选择下载64位或32位系统 二. 制作U盘启动器  1下载UltraISO软件安装并打开 2.网上搜索教程

Ubuntu16.04 + cuda8.0 + GTX1080安装教程

1. 安装Ubuntu16.04 不考虑双系统,直接安装 Ubuntu16.04,从 ubuntu官方 下载64位版本: ubuntu-16.04-desktop-amd64.iso . 在MAC下制作了 Ubuntu USB 安装盘,具体方法可参考: 在MAC下使用ISO制作Linux的安装USB盘 ,之后通过Bios引导U盘启动安装Ubuntu系统: 1)一开始安装就踩了一个坑,选择”Install Ubuntu”回车后过一会儿屏幕显示“输入不支持”,google了好多方案,最终和ubunt