Linux中使用国产CH343应用记录

USB转串口CH343驱动 USB转串口CH343驱动背景在网上用9.9淘的一块ESP32-C3(RISC-V)的小开发板上,用的CH343的USB转串口。最近打算学习用Rust开发ESP32-C3,在Ubuntu上搭建开发环境的时候发现,Ubuntu20.04上默认使用的是 CDC-ACM 驱动,即生成的节点为/dev/ttyACM0,但是用Rust开发ESP32-C3,需要使用 VCP 驱动,于是在网上找到了官方(WCH。在网上用9.9淘的一块ESP32-C3(RISC-V)的小开发板上,用的CH343的USB转串口。 阅读详情

        在开发中长期使用Linux系统,在使用USB转串口芯片中总会遇到许多问题,特此记录一下也希望帮助更多遇到该问题的朋友。

        不熟悉CH343的朋友可以参考该链接:CH343芯片应用—硬件设计_WCH_SoftGroup的博客-优快云博客

1、如何加载CH343的Linux驱动

        首先,是获取CH343的Linux驱动,其链接:GitHub - WCHSoftGroup/ch343ser_linux: USB driver for USB to serial chip ch342, ch343, ch344, ch9101, ch9102, ch9103, etc

        其编译说明在README文件中已有详细叙述,此处不多提及。

​

2、如何在嵌入式开发板中加载驱动

        驱动的加载分为动态加载和直接在源码写入编译,其实使用并不难,只需修改官方Makefile中的KERNELDIR指向自己的内核源码即可,若是想直接内置也可编写对应的kconfig文件并在内核目录下添加对应源码即可完成。但我使用时候为动态加载方式,此处主要先记录动态加载方法。

​

3、如何让驱动开机自启动无需二次加载

install: default
	mkdir -p /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial
	cp -f ./ch343.ko /lib/modules/$(shell uname -r)/kernel/drivers/usb/serial
	echo "ch343\n" >> /etc/modules
	depmod -a

        官网的Makefile其实已经内置了方法,只需编译出ko驱动文件之后,执行“make install”即可完成,注意其中的“echo "ch343\n" >> /etc/modules”语句,实际上是将模块名写入该文件,为了避免系统自带的CDC驱动优先级高于CH343,使其无法正常加载VCP驱动才如此,写入"/etc/modules"的目的实则是为了让系统在内核启动阶段就加载CH343驱动,相当于把优先级提高,也是一个很不错的解决办法。

4、如何正确使用CH343

        对于经常接触Linux串口编程的朋友来说,串口正常调用“/dev”目录下设备节点即可,不熟悉的朋友可以自己搜索一下linux串口编程,只需要常规的串口API对其进行操作读写即可,当然之前在使用沁恒CH9102时有讨论其GPIO使用,可根据“ioctl”方法进行代码逻辑实现而已,CH9102其在嵌入式Linux底下的应用和CH343大致相同,但不同之处在于CH343为USB转高速串口,通讯波特率可高至6Mbps,且其外围简单到只要一两个电容即可完成,所以还是很推荐,至于嵌入式下开发板如何进行使用可参照我往期文章

Arm-Linux上使用国产USB转串口芯片CH9102_OIDCAT的博客-优快云博客_ch9102驱动

        如果有使用问题也欢迎和我一起讨论。晚安各位。

从CH9102到CH343:国产USB转串口芯片在树莓派4B上的实战升级与性能对比 本文详细对比了国产USB转串口芯片CH9102与CH343在树莓派4B上的性能差异与实战升级过程。通过硬件选型、驱动编译、性能测试等环节,揭示CH343凭借USB3.0接口和6Mbps高速传输优势,成为工业级应用的理想选择,特别适合高速数据流和低延迟控制场景。 阅读详情

相关推荐

从CH9102到CH343:国产高速USB串口芯片在树莓派4B上的实战升级笔记

本文详细记录了从CH9102升级到CH343国产高速USB串口芯片在树莓派4B上的实战经验。通过对比两款芯片的核心参数,展示了CH343在6Mbps高速传输、简化外围电路和低功耗方面的优势,并提供了驱动部署、性能优化及故障排查的实用技巧,助力开发者提升嵌入式项目的效率和稳定性。

weixin_26821003的博客 244

CH342/CH343/CH344/CH346/CH347/CH9101/CH9102/CH9103/CH9104/CH9111/CH9114 Linux串口驱动使用教程

CH343 Linux串口驱动 ch343ser_linux 支持USB转串口芯片 ch342/ch343/ch344/ch347/ch9101/ch9102/ch9103/ch9104等 ,同时该驱动配合ch343_lib库还提供了芯片GPIO接口的读写功能,内部EEPROM的信息配置和读取功能等。CH344Q:16CH344L:12CH9102F:5CH9102X:6可以使用git clone下载该驱动,也可以点击网页下载压缩包文件。

PC小能手的博客 1万+

CH343 USB转多串口评估板:3Mbps高速通信与多设备调试实战

USB转串口(UART)是嵌入式开发中连接计算机与微控制器的核心桥梁,它将复杂的USB协议转换为简单的串行通信信号,实现设备间的可靠数据交换。其技术原理基于USB CDC类协议,通过虚拟COM端口技术,在操作系统中创建标准串行接口,从而允许上位机软件通过通用API进行通信。这项技术的核心价值在于极大简化了嵌入式系统的调试、数据采集和固件升级流程,是物联网设备、工业控制、消费电子等领域开发调试的必备工具。在高速数据采集、多外设并行调试、网关设备通信等场景中,对高波特率、多通道和硬件流控的需求日益增长。本文聚焦

weixin_28285943的博客 275

CH343芯片应用—Windows驱动安装与使用

CH343芯片Windows驱动安装和使用说明

PC小能手的博客 1万+

不止于串口调试:用CH9102的GPIO和唤醒功能,给你的IoT设备加点“魔法”(基于I.MX6U实测)

本文深入探讨了CH9102芯片在IoT设备中的高阶应用,包括GPIO控制和主机唤醒功能。通过Arm-Linux平台实测,展示了如何利用CH9102的多电压串口、可编程GPIO和硬件唤醒特性,解决智能硬件开发中的接口资源紧张问题,并提供了具体的硬件连接方案和Linux驱动层适配方法。

weixin_30596343的博客 460

国产RISC-V小板D213ECV极简部署PicoClaw实现边缘AI推理

边缘AI推理是指在靠近数据源头的嵌入式设备上直接运行轻量级模型,无需依赖云端或高性能服务器。其核心原理在于软硬协同优化:通过专用NPU加速、内存布局精简与静态编译技术,显著降低计算开销与资源占用。技术价值体现在毫秒级确定性延迟、KB级模型体积与超低功耗(整机1.75W),支撑工业实时控制、智能传感与教育机器人等场景。相比TensorFlow Lite等通用框架,PicoClaw面向RISC-V架构深度定制,结合匠芯创D213ECV的硬件特性,实现真正开箱即用的极简部署——无需Linux、不依赖IDE、免交叉

weixin_34401479的博客 434

linux 沁恒usb转ttl驱动安装与应用(ch342/ch343 screen)

inux系统对usb转串口(ch342/ch343)安装使用调试。

luthane的博客 6301

CH340 USB转TTL模块驱动安装与串口通信实战指南

串口通信作为嵌入式开发和硬件调试的基础技术,其核心在于实现设备间的可靠数据传输。USB转TTL模块通过电平转换原理,在现代计算机与传统串口设备间建立桥梁。CH340芯片凭借出色的稳定性和性价比,成为该领域的经典方案。从驱动安装、参数配置到故障排查,掌握这些技能能显著提升开发效率。在Arduino烧录、路由器救砖等场景中,正确的波特率设置和接线方式直接影响通信成功率。通过对比CH340G、CP2102等主流芯片特性,开发者可根据项目需求选择最优方案。

weixin_29168813的博客 296

CH343 Linux驱动配置:免驱、权限与固定设备节点

USB转串口芯片是嵌入式开发、物联网设备调试中的常用器件,Linux系统对其支持程度直接影响开发效率。以CH343为例,该芯片遵循USB CDC ACM标准,Linux内核从4.x起即内置cdc_acm驱动模块,因此在Ubuntu 22.04等发行版中无需额外安装厂商驱动,插上即可识别为ttyACM0。然而实际使用中常遇到设备节点不生成、权限不足或重启后名称漂移等问题,这往往与驱动无关,而是udev规则与用户组配置缺失所致。通过将用户加入dialout组、编写udev规则绑定USB Vendor/Produ

weixin_33884611的博客 517

linux下CH340/CH341驱动安装

linux下CH340/CH341驱动安装

追风的博客 6606

Linux系统安装CH341驱动教程

在Linux系统中安装CH341驱动是一个常见的需求,因为CH341芯片广泛应用于各种USB转串口设备。本文将为您提供详细的步骤和相应的源代码,以帮助您成功安装CH341驱动。首先,我们需要检查您的Linux系统的内核版本。下载完成后,将源代码文件解压到您选择的目录中。如果驱动程序成功加载,您应该能够在日志中看到与CH341相关的信息。在解压缩后的目录中,您将找到CH341驱动的源代码。请将"driver.tar.gz"替换为您下载的驱动程序文件的实际名称。编译成功后,我们需要将驱动程序安装到系统中。

XrMask的博客 1844

Ubuntu 22.04安装CH343驱动:从内核编译到DKMS自启完全指南

USB转串口设备在Linux下必须由内核驱动匹配对应的VID/PID,才会生成可用的tty节点。CH343作为新一代USB转串口芯片,在Ubuntu 22.04默认5.15内核中缺乏原生支持,导致插入后lsusb可见但/dev下不出现ttyUSB0。文章从内核串口驱动匹配原理讲起,深入解析CH343与CH340的协议差异及设备命名规则,并完整演示如何获取官方源码、编译内核模块、通过DKMS实现内核升级后自动重建,以及配置udev规则免sudo访问和固定符号链接。同时还覆盖Secure Boot拦截、头文件版

weixin_34059951的博客 285

【信息科学与工程学】【产品体系】计算机科学与自动化——第一百八十九篇 操作系统内核(微内核/宏内核)函数与算法02

宏内核(Linux)更多典型内核函数/算法,从编号271开始,覆盖中断管理、热插拔、PCI、ACPI、固件、崩溃转储、kexec、休眠、watchdog、RTC、hwmon、LED、backlight、input子系统、remoteproc等更多领域。编号类型领域内核类型内核中的函数/算法/模块/模组模块的调用关系模块/函数/算法逐步推理思考的数学表达式及参数列表及参数数值设计模块的C/C++/其他代码关联知识271中断管理中断描述符宏内核 / (中断子系统核心)驱动申请中断 → → → 分配irq_

weixin_49199313的博客 104

Linux下USB转串口设备节点消失?从硬件到系统的5层排查指南

在嵌入式开发和工控调试中,USB转串口设备是常用的调试工具,但时常会遇到设备节点如/dev/ttyUSB*神秘消失的情况。这背后涉及USB协议栈的设备枚举、内核驱动模块加载、udev设备管理、文件权限控制以及电源管理等多层机制。理解从lsusb识别硬件、dmesg查看内核日志、modprobe加载驱动,到udev规则配置和USB自动挂起禁用的完整链路,是高效定位问题的关键。通过系统化的逐层排查,不仅能解决CH340、CP210x、FT232等常见芯片的驱动兼容性问题,还能应对内核升级、权限不足和端口占用等隐

weixin_33875564的博客 355

STM32异常与中断过程详解

1. 异常与中断概念引入 异常主要是指来自CPU内部的意外事件,比如执行了未定义指令、算术溢出、除零运算等发生在CPU内部的意外事件,这些异常的发生,会引起CPU运行相应的异常处理程序;中断一般来自硬件(如片上外设、外部I/O输入等)发生的事件,当这些硬件产生中断信号时,CPU会暂停当前运行的程序,转而去处理相关硬件的中断服务程序。但无论是异常还是中断,都会引起程序执行偏离正常的流程,转而去执行异常/中断的处理函数。 下面对异常和中断的介绍,如果中断信号的产生原因来自CPU内部,则称之为异常;如果中断信号来

luobeihai的博客 1万+

基于EKF的UWB-IMU融合定位系统在农业机器人中的抗干扰优化与Matlab仿真

本文探讨了基于扩展卡尔曼滤波(EKF)的UWB-IMU传感器融合定位系统在农业机器人中的应用。通过Matlab仿真验证,该系统有效解决了农业环境中UWB信号遮挡和IMU累积误差问题,实现了厘米级高精度定位,显著提升了机器人在复杂场景下的抗干扰能力和导航可靠性。

numpy6sculptor的博客 620

友善M6开发板ROS2系统级调优实战指南

ARM嵌入式开发中,Linux内核与用户空间协同是保障实时通信和异构外设稳定运行的基础。全志H616平台凭借双千兆以太网、PCIe 2.0和MIPI-CSI等特性,成为ROS2边缘节点的重要硬件载体;其核心挑战在于主线内核支持不完整、GPU驱动(Panfrost)对DRI3兼容性不足,以及USB/PCIe等子系统需手动打补丁修复。技术价值体现在可控的软硬件抽象层、可审计的设备树定制能力,以及对cgroup内存管理、QoS策略与硬件时序的深度对齐。典型应用场景包括ROS2 Humble在2GB内存限制下的rv

weixin_29168675的博客 229

从 0 搭建一个智能问答工单系统:低代码 + 大模型的实战融合方案

企业智能问答工单系统解决方案:通过橙武低代码平台集成DeepSeek大模型,实现自动化工单处理与智能问答。系统能自动匹配知识库、分类工单,支持多渠道接入,显著提升响应效率(答复时间从12小时降至5分钟)。采用MySQL8表结构设计,结合向量数据库实现语义搜索,客服人力需求减少70%。系统支持知识库持续优化,AI答复满意度达88%,助力企业低成本构建智能客服中台。

欢迎来到我的优快云博客!我专注于技术创新和数字化转型,特别是在低代码平台、人工智能和大数据分析领域的探索与应用。通过深入分析各种行业案例,帮助企业加速数字化进程,提升运营效率与创新能力。在这里,您将找到关于低代码平台、AI技术、数据分析与 1548

Linux下USB转串口设备找不到?从驱动到权限的完整排查指南

在Linux系统中,一切皆文件,串口设备也不例外。当开发板通过USB转串口芯片(如CH340、CP2102)连接Ubuntu时,系统需要内核驱动正确匹配并创建设备节点,用户才能通过/dev/ttyUSB0或/dev/ttyACM0访问。如果设备文件未出现,问题可能出在物理链路、USB枚举、驱动模块加载,甚至设备树配置上。即便设备节点存在,用户组权限不足也会导致打开失败。此外,在虚拟机环境中,还需配置USB直通才能让Ubuntu识别串口。本文从底层原理出发,结合dmesg、lsusb、udevadm等工具,系

WGH100817的博客 553

《多模态融合改进》目录一览 | 专栏介绍 :全网 第一份 完整的多模态改进教程,提供《多模态模型改进完整项目包》-开箱即用

在大家订阅专栏后,便可获得多模态模型改进完整项目包-开箱即用,方便简单

Limiiiing的博客 1万+

RK3566 Android11默认客户Launcher修改

【代码】RK3566 Android11默认客户Launcher修改。

Android系统开发笔记 1722

Linux串口调试实战:stty查看与配置串口参数全指南

在嵌入式开发和系统运维中,串口始终是连接硬件设备与调试终端的核心通道。Linux系统将一切设备抽象为文件,串口对应的设备节点位于 /dev 目录下,如常见的 /dev/ttyUSB0 和 /dev/ttyS0。要实现对串口的灵活控制,离不开 stty 这一底层命令,它直接面向终端驱动,可查看和修改波特率、数据位、停止位、校验位等关键属性,是串口调试的基石。理解这些参数背后的原理,不仅能帮助开发者快速定位乱码、丢数据、权限拒绝等高频问题,还能为编写串口程序打下基础。在嵌入式开发板连接、固件烧写、网络设备配置等

weixin_34377919的博客 414

一个 ABAP 工具,能打印系统里某个用户对 BSP 应用的浏览历史记录

只要一个用户在 SAP ABAP 系统里浏览过 BSP 页面,会留下浏览历史记录。本工具会解析出这些记录,打印出该用户浏览的历史事件,和浏览过的页面名称。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 545

软件开发者如何从零设计第一块PCB:以ESP32最小系统板为例

电子设计自动化(EDA)是现代硬件开发的核心工具,它通过软件辅助完成电路原理图设计、PCB布局布线等关键流程,极大降低了硬件开发门槛。其技术价值在于将抽象的电路逻辑转化为可制造的物理实体,实现了从设计到生产的无缝衔接,广泛应用于消费电子、物联网设备和嵌入式系统开发等领域。对于软件开发者而言,掌握EDA工具如立创EDA,能够快速实现从想法到实物的闭环,例如设计一块基于ESP32的物联网核心板。本文以实战项目为例,详细拆解了从需求分析、原理图绘制到PCB布局、打样焊接的全过程,并提供了常见问题排查指南,旨在帮助

weixin_33928137的博客 855

全面认识PFC和LLC

想象一下,你在拉一辆车,如果你的力气都用在推动车子前进的方向上,这样拉车会比较轻松。而如果你的力气用在不正确的方向,比如侧向、斜向,那就需要更大的力气才能推动车子。PFC就是在帮助电流“朝着正确的方向”流动,这样可以用更少的能量做更多的事情,减少无用的功率损耗。PFC负责将电流方向对齐,让电源效率更高,而LLC负责电压的高效转换,两者配合可以在更宽的负载范围内保持高效率。综上所述,PFC LLC电路是一种高效的电源转换电路,通过PFC模块和LLC模块的组合,实现了从交流电到直流电的高效转换。

weixin_43199439的博客 6085

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: USB键鼠类芯片CH9329应用笔记
下一篇: ubuntu下出现LIBUSB_ERROR_NO_MEM
OIDCAT
博客等级 码龄8年 163粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值