html 网站源码 卖手机,网站建设的域名注册,美术教育机构网站建设方案,世界网络公司排名前十简介#xff1a; CSDN博客专家#xff0c;专注Android/Linux系统#xff0c;分享多mic语音方案、音视频、编解码等技术#xff0c;与大家一起成长#xff01; 优质专栏#xff1a;Audio工程师进阶系列【原创干货持续更新中……】#x1f680; 优质专栏#xff1a;多媒… 简介 CSDN博客专家专注Android/Linux系统分享多mic语音方案、音视频、编解码等技术与大家一起成长 优质专栏Audio工程师进阶系列【原创干货持续更新中……】 优质专栏多媒体系统工程师系列【原创干货持续更新中……】 优质视频课程AAOS车载系统AOSP14系统攻城狮入门实战课【原创干货持续更新中……】 人生格言 人生从来没有捷径只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注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芯片的主要特点如下
高度集成CH9344内置了USB收发器、串口收发器、电压转换器等模块只需外接几个元件即可实现USB转串口的功能。这大大简化了电路设计降低了系统成本。兼容性好CH9344支持USB 1.1协议能与各种操作系统和USB设备兼容。在Windows、Linux、Mac OS等系统中无需安装驱动程序即可识别和使用。串口参数可编程CH9344支持通过软件设置串口的波特率、数据位、停止位、校验位等参数以满足不同应用场景的需求。丰富的串口功能CH9344支持硬件流控制RTS/CTS、软件流控制XON/XOFF、发送/接收缓冲区等串口功能保证了数据传输的稳定性和可靠性。灵活的供电方式CH9344支持从USB接口和外部电源两种方式供电方便用户在不同场景下使用。小型化封装CH9344采用QFN封装体积小巧便于在空间受限的场合中使用。工作温度范围宽CH9344的工作温度范围为-40℃至85℃能满足各种恶劣环境下的使用需求。低功耗CH9344在正常工作状态下的功耗仅为120mW待机功耗小于1mW有利于降低整体系统的能耗。抗干扰性能强CH9344具备良好的抗电磁干扰能力能在复杂的电磁环境下稳定工作。完善的售后服务南京沁恒微电子提供完善的售后服务包括技术支持、样品申请、产品维修等确保用户无后顾之忧。
CH9344是一款性能优异、应用广泛的USB转串口芯片能为用户提供稳定、可靠的串口通信解决方案。随着物联网、工业互联网等领域的不断发展CH9344的市场需求将持续增长成为串口通信领域的重要选择。
3.解决方案
3.1 官网下载驱动代码
9344芯片驱动代码下载
https://www.wch.cn/downloads/file/386.html?time2024-06-09%2014:48:19codetPIw19Z80Kn3RhVD1I1X2qrYLxv7xVeOFDFqQT7h3.2 解压、修改代码
1.解压
# unzip CH9344SER_LINUX.ZIP
# cd LINUX/driver2.修改代码
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);#elsestatic int ch9344_tty_write(struct tty_struct *tty, const unsigned char *buf, int count);#endif2.修改二 #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)#elsestatic 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 install3.查看是否安装到指定目录
# 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 05.查看串口设备
# ls /dev/ttyCHxxxUSB注意
可以看到有dev/ttyCHxxxUSBx四个usb转串口设备一般使用第一个tyCHxxxUSB0就行.3.4 遗留问题
开机重启后发现/lib/modules/$(uname -r)/kernel/drivers/usb/serial/ch9344.ko驱动没有自动加载我们下一篇再说。