STM32 虚拟串口 LINUX 驱动调试
时间:10-02
整理:3721RD
点击:
一直在使用STM32的虚拟串口在Windows上调试,偶尔还会出现驱动无法安装,这一次顾客要求我们的产品通过串口的形式向对方机器发送一些数据,但是我们的机器已经做完了,外部只有一个USB 接口,这个我们用来作为自己的调试使用,想想只能通过这个方式与顾客通信,于是就在机器上利用该接口进行开发调试。
3.1号星期三我们技术团队几个人一起到对方的客户进行调试,首先使用我们自己在windows上的串口调试助手进行演示,没有问题。后来要接到顾客的RedHat 系统上进行调试。连接上之后,无论如何顾客那面都无法识别出当前
枚举出该端点。顾客对我们说是因为我们没有在Linux的机器上安装虚拟串口驱动,于是开始网上各种百度。找了半天只有一个网页里有个网友说在Linux上不用安装驱动。但是硬是没有枚举出来,后来打电话给ST的官网。问他们需要STM32在LINUX上的驱动,但是对方人员给我说他们也没有遇到过顾客用STM32的虚拟串口与LINUX进行通讯,他们说帮我问问,最后还是结果还是没有人给出怎么样在LINUX上使用该驱动。于是自己发现STM32的虚拟串口是通过VCPdriver公司开发的。于是下载ftdi_sio安装包。在对方顾客上安装,通过查询本身LINUX发现本身自带该安装包。这是连接我们的设备发现还是无法正确连接。这时真是急得一头大汗。明明可以实现的为什么实现不了呢。于是又请教了对方一个搞LINUX硬件的驱动工程师。这时终于发现点苗头。重点在下面
STM32的PID为0x5720 VID为0483 .心想肯定这个东西搞得怪。于是我们将PID改为0x6001,VID改为0403.这个是按照VCPdriver里面的一个手册改的到底为什么,下次我找找。这时成功解决了问题,LINUX可以成功枚举该端口。而且可以正常与LINUX进行通讯。真是太高兴了。
在这里我先把解决问题方法告诉大家,如果过有人遇到同样的问题。至于为什么要这么该。后期有空我会再写一篇文章来阐述该问题。今天到此为止,谢谢大家。
大家也谢谢你,幸苦了
不客气,找遍了整个百度也没找到怎么解决这个问题的,今天把解决问题的方法告诉大家,至于原因嘛,大家自己也可以查查
辛苦辛苦,这样的帖子就应该顶一下,不知道为什么就是应该顶一下
谢谢,有干货还是想和大家分享一下
你好,我最近项目上也要用这个功能。
使用STM32的插卡出USB口连接到linux操作系统的设备上,发现扫描不到设备。同样的插卡插在win系统上可以看到虚拟串口。
请教下是只需要修改stm32固件中usb代码里的pid、vid就可以了吗?
是的,你可以按照上面的叙述来修改你的PID,VID
是的,你可以按照上面的叙述来修改你的PID,VID
是的,你可以按照上面的叙述来修改你的PID,VID
是的,你可以按照上面的叙述来修改你的PID,VID