记一次Ubuntu与CH9102串口通信问题

1.问题介绍

        笔者在做机械臂项目的时候,单片机上的USB转串口芯片从CP2102换成了CH9102,在自己笔记本的ubuntu上做串口通信测试的时候没有任何问题,但是将程序移植到工控机的ubuntu上时,CH9102无法正常通信,表现为:通信时好时坏,每次上电只能收到头一组数据,单片机用仿真器debug的时候也是如此,有时甚至接收不到数据。

2.解决方案

        由于笔者不懂硬件电路,只能硬着头皮先上排除法。先找单片机的麻烦,幸好官方提供了更新CH9102后的配套单片机例程,将先前的代码移植到新的工程上面,测试发现还是一样的问题。              再想到将CH9102单片机接到笔记本ubuntu上可以正常通信,接到工控机ubuntu上无法正常通信,但是老的CP2102板子却可以正常通信,怀疑是驱动问题。对比了一下:

        在笔记本上,CH9102被识别为设备ttych343usb0,而在工控机上则被识别为ttyacm0。查询相关资料得到CH9102支持免安装CDC类驱动程序的操作系统内置或者多功能高速率的VCP厂商驱动程序。排除到这估摸着也只剩下这一种可能性了,应该就是驱动的问题

        关于串口CDC驱动、HID驱动、VCP驱动笔者也没啥认知。查了下相关资料,发现工控机里面没有CH343驱动,于是先去安装驱动,附上链接:

CH343驱动https://github.com/WCHSoftGroup/ch343ser_linux

        下载完之后解压下来,进入driver目录依次执行:

make
sudo make load
sudo make install

        然后查看串口驱动是否安装成功:

ll /dev | grep ttyCH343USB0

        安装成功后再测试通信,就正常啦!

        如果在安装驱动的时候insmod加载驱动程序报错:Operation not permitte,大概率是bios里面secure boot开着,把它关了再重新操作就没问题了。

        如果有大佬知道更详细的原因,或者能解释一下这几个驱动的问题,笔者感激不尽!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kane2333

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值