XUbuntu24.04之ch9344(usb转串口芯片)安装驱动(二百四十五)

news2024/11/26 23:46:00

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中……】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门实战课原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2.ch9344按usb转串口芯片介绍
    • 🌻3.解决方案
      • 🐓3.1 官网下载驱动代码
      • 🐓3.2 解压、修改代码
        • <1>.解压
        • <2>.修改代码
      • 🐓3.3 编译与安装
      • 🐓3.4 遗留问题

🌻1.前言

本篇目的:XUbuntu24.04之ch9344按usb转串口driver

🌻2.ch9344按usb转串口芯片介绍

  • CH9344是一款USB转串口芯片,由南京沁恒微电子股份有限公司研发。该芯片将USB接口转换为串口,具有高度集成、稳定性强、兼容性好等特点,广泛应用于工业控制、数据采集、通信设备等领域。
  • CH9344芯片的主要特点如下:
  1. 高度集成:CH9344内置了USB收发器、串口收发器、电压转换器等模块,只需外接几个元件即可实现USB转串口的功能。这大大简化了电路设计,降低了系统成本。
  2. 兼容性好:CH9344支持USB 1.1协议,能与各种操作系统和USB设备兼容。在Windows、Linux、Mac OS等系统中,无需安装驱动程序即可识别和使用。
  3. 串口参数可编程:CH9344支持通过软件设置串口的波特率、数据位、停止位、校验位等参数,以满足不同应用场景的需求。
  4. 丰富的串口功能:CH9344支持硬件流控制(RTS/CTS)、软件流控制(XON/XOFF)、发送/接收缓冲区等串口功能,保证了数据传输的稳定性和可靠性。
  5. 灵活的供电方式:CH9344支持从USB接口和外部电源两种方式供电,方便用户在不同场景下使用。
  6. 小型化封装:CH9344采用QFN封装,体积小巧,便于在空间受限的场合中使用。
  7. 工作温度范围宽:CH9344的工作温度范围为-40℃至+85℃,能满足各种恶劣环境下的使用需求。
  8. 低功耗:CH9344在正常工作状态下的功耗仅为120mW,待机功耗小于1mW,有利于降低整体系统的能耗。
  9. 抗干扰性能强:CH9344具备良好的抗电磁干扰能力,能在复杂的电磁环境下稳定工作。
  10. 完善的售后服务:南京沁恒微电子提供完善的售后服务,包括技术支持、样品申请、产品维修等,确保用户无后顾之忧。
  • CH9344是一款性能优异、应用广泛的USB转串口芯片,能为用户提供稳定、可靠的串口通信解决方案。随着物联网、工业互联网等领域的不断发展,CH9344的市场需求将持续增长,成为串口通信领域的重要选择。

🌻3.解决方案

🐓3.1 官网下载驱动代码

9344芯片驱动代码下载:
https://www.wch.cn/downloads/file/386.html?time=2024-06-09%2014:48:19&code=tPIw19Z80Kn3RhVD1I1X2qrYLxv7xVeOFDFqQT7h

🐓3.2 解压、修改代码

<1>.解压
# unzip CH9344SER_LINUX.ZIP
# cd LINUX/driver
<2>.修改代码
  • 1.修改一
# cd LINUX/driver
# emacs cd LINUX/driver
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 14, 0))
+ static ssize_t ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, size_t count);
+ #else
+ static int ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, int count);
+ #endif
  • 2.修改二:
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 14, 0))
+ static ssize_t ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, size_t count)
+ #else
+ static int ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, int count)
+ #endif
{
    struct ch9344 *ch9344 = tty->driver_data;
	int stat;
	unsigned long flags;
	int wbn;
	struct ch9344_wb *wb;
	int portnum = ch9344_get_portnum(tty->index);
	int timeout;
	int maxep = ch9344->writesize / 20;
	int packnum, maxpacknum;
	int packlen, total_len, sendlen;
}

🐓3.3 编译与安装

1.编译
# make 

2.安装到/lib/modules/$(uname -r)/kernel/drivers/usb/serial目录下
# sudo make install

3.查看是否安装到指定目录
# ls /lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch9344.ko
/lib/modules/6.8.0-35-generic/kernel/drivers/usb/serial/ch9344.ko
已经安装到指定目录

4.查看ch9344.ko是否已经加载到系统
# lsmod |grep -i ch9344
ch9344     61440  0

5.查看串口设备
# ls /dev/ttyCHxxxUSB

注意:
可以看到有dev/ttyCHxxxUSBx四个usb转串口设备,一般使用第一个tyCHxxxUSB0就行.

🐓3.4 遗留问题

  • 开机重启后,发现/lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch9344.ko驱动没有自动加载,我们下一篇再说。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1805425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DVB-S系统发射端Matlab仿真及FPGA实现

DVB标准 Digital Video Broadcasting&#xff08;数字视频广播&#xff09;是一个完整的数字电视解决方案&#xff0c;其中包括DVB-C&#xff08;数字电视有线传输标准&#xff09;&#xff0c; DVB-T&#xff08;数字电视地面传输标准&#xff09;&#xff0c;DVB-S&#xff…

什么是突发性耳聋?

72小时内突然发生、原因不明的感音神经性听力损失&#xff0c;至少在相邻的两个频率听力下降≥20dBHL。 特点&#xff1a; 1发生在数分钟、数小时或3天以内的听力下降&#xff1b; 2原因不明&#xff1b; 3多发生于单侧&#xff0c;可伴有耳鸣、耳堵塞感及耳周麻木感&#…

C#操作MySQL从入门到精通(21)——删除数据

前言: 谈到数据库,大家最容易脱口而出的就是增删改查,本文就是来详细介绍如何删除数据。 本文测试使用的数据库如下: 1、删除部分数据 使用delete 关键字,并且搭配where条件使用,否则会导致表中数据全部被删除 string sql = string.Empty;if (radioButton_DeletePart…

vivado HW_ILA

HW_ILA 描述 集成逻辑分析器&#xff08;ILA&#xff09;调试核心允许您执行系统内监控 通过对内核上的调试探针&#xff0c;在实现的设计中对信号进行处理。您可以配置 ILA核心实时触发特定硬件事件&#xff0c;并在 以系统速度探测。 ILA调试核心可以通过从IP目录实例化ILA核…

MyBatisPlus总结二

MybatisPlus总结一在这&#xff1a; MybatisPlus总结1/2-CSDN博客 六、分页查询&#xff1a; 6.1.介绍&#xff1a; MybatisPlus内置了分页插件&#xff0c;所以我们只需要配置一个分页拦截器就可以了&#xff0c;由于不同的数据库的分页的方式不一样&#xff0c;例如mysql和…

问题汇总:MPU6050(软件iic)

以下为个人问题汇总&#xff0c;排查点汇总可能大有缺陷&#xff0c;如有错误&#xff0c;欢迎指正。 排查点汇总 检查软件iic的时序操作用示波器或逻辑分析仪检查波形 无法使用逻辑分析仪进行I/O引脚波形分析 充当SDA、SCL的引脚要配置为推挽输出; 另外&#xff0c;逻辑分…

【全开源】安心护送非急救救护车转运平台小程序(FastAdmin+ThinkPHP+Uniap

&#x1f691;安心护送非急救救护车转运平台小程序——您的健康守护者&#x1f496; 安心护送转运平台小程序是一款基于FastAdminThinkPHPUniapp开发的非急救救护车租用转运平台小程序系统&#xff0c;可以根据运营者的业务提供类似短途接送救护服务&#xff0c;重症病人转运服…

一文学会Spring 实现事务,事务的隔离级别以及事务的传播机制

目录 一.Spring (Spring Boot) 实现事务 1.通过代码的方式手动实现事务 (手动档的车) 2.通过注解的方式实现声明式事务 (自动挡的车) 二.事务的4大特性(ACID) 三.事务的隔离级别 ①Mysql的事务隔离级别: ②Spring的事务隔离级别: 四.事务的传播机制 ①事务传播机制的概…

Git配置 安装及使用

团队开发的神 找工作必备 环境变量 配置好环境后 打开终端环境 winr cmd 我习惯在桌面打开&#xff0c;然后进入相应的文件夹 &#xff08;文件夹结构&#xff09; &#xff08;个人感觉能用cmd不用git&#xff0c;cmd更好用一些&#xff09; 进入对应的文件夹 填写自己对…

Valgo,类型安全,表达能⼒强的go验证器

valgo 是一个为 Go 语言设计的类型安全、表达性强且可扩展的验证库。该库的特点包括&#xff1a; github.com/cohesivestack/valgo 类型安全&#xff1a;利用 Go 语言的泛型特性&#xff08;从 Go 1.18 版本开始支持&#xff09;&#xff0c;确保验证逻辑的类型安全。表达性&a…

Docker高级篇之Docker微服务实战

文章目录 1. 构建一个简单的微服务项目2. 编写Dockerfile发布微服务部署到docker容器 1. 构建一个简单的微服务项目 创建一个SpringBoot项目 创建一个Controller RestController public class OrderController {Value("${server.port")private String port;Reques…

深入分析 Android BroadcastReceiver (二)

文章目录 深入分析 Android BroadcastReceiver (二)1. 深入理解 BroadcastReceiver 的高级使用和优化2. 有序广播&#xff08;Ordered Broadcasts&#xff09;2.1 实现有序广播 3. 粘性广播&#xff08;Sticky Broadcasts&#xff09;3.1 使用粘性广播 4. 本地广播&#xff08;…

阿里云 MQTT 服务器搭建与测试(上传和下发数据finish)

一、 MQTT 概念 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于 TCP/IP协议上,由 IBM 在 1999 年发布。MQTT 最大优点在于,可以以极少的代码和有限的带宽,…

CNCF项目全景图介绍

本文首发在个人博客上&#xff0c;欢迎来踩&#xff01; 云原生计算基金会&#xff08;CNCF&#xff09;介绍 CNCF(Cloud Native Computing Foundation)官网链接&#xff1a;https://www.cncf.io/ 官方的介绍如下&#xff1a; 云原生技术有利于各组织在公有云、私有云和混合…

Mysql(一):深入理解Mysql索引底层数据结构与算法

众所众知&#xff0c;MySql的查询效率以及查询方式&#xff0c;基本上和索引息息相关&#xff0c;所以&#xff0c;我们一定要对MySql的索引有一个具体到数据底层上的认知。 这一次也是借着整理的机会&#xff0c;和大家一起重新复习一下MySql的索引底层。 本节也主要有一下的…

【马琴绿绮】马维衡古琴之马氏汉风 明代杉木制;周身髹朱红色漆

【马琴绿绮式】马维衡古琴之马氏汉风 明代杉木制&#xff1b;琴体周身髹朱红色漆&#xff0c;鹿角霜灰胎&#xff1b;形体壮硕、风格高古&#xff1b;音色松透、浑厚&#xff0c;音质纯净&#xff0c;按弹舒适&#xff0c;手感丝滑。

【vue实战项目】通用管理系统:图表功能

目录 前言 1.概述 2.数据概览页 2.1.柱状图 2.2.折线图 2.3.地图 前言 本文是博主前端Vue实战系列中的一篇文章&#xff0c;本系列将会带大家一起从0开始一步步完整的做完一个小项目&#xff0c;让你找到Vue实战的技巧和感觉。 专栏地址&#xff1a; https://blog.csd…

Vue3【十三】watch监视

Vue3【十三】watch监视 Vue3 中的watch祝你能监视以下四种数据 ref 定义的数据reactive定义的数据函数返回一个值一个包含上述内容的数组 案例截图 目录结构 案例代码 Person.vue <template><div class"person"><!-- <h1>Watch情况1&#xff…

遗址博物馆ar互动展示软件提供丰富的趣味化体验

在自然博物馆的每一个角落&#xff0c;都隐藏着大自然的奥秘与魅力。为了让每一位参观者都能深入体验、探索这些奥秘&#xff0c;我们引入了前沿的AR技术&#xff0c;为您带来一场前所未有的沉浸式自然之旅。 步入博物馆&#xff0c;您手中的AR相机将成为您的更佳向导。自然博物…

如何合并pdf文件?告别软件,教你用python轻松解决

首先安装相关库文件&#xff1a; pip install PyPDF2, tkinter 接着&#xff0c;定义合并pdf函数&#xff0c;使用了PdfMerger构建对象&#xff0c;输入pdf文件路径列表&#xff0c;以及输出文件夹路径 from PyPDF2 import PdfMergerdef merge_pdf(file_paths, output_dir…