Linux中使用国产CH343应用记录

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

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

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的博客-CSDN博客_ch9102驱动

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

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值