野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10389|回复: 2

CH340接在hub集线器上就打不开???

[复制链接]
发表于 2017-3-28 14:02:34 | 显示全部楼层 |阅读模式
本帖最后由 CSWZH8 于 2017-3-28 14:19 编辑

自己用MFC写了一个串口上位机控制STM32的小程序,STM32通过ch340接在笔记本USB口时可以使用,但是通过hub集线器间接连接时,上位机程序打不开串口,提示invalid port number。。


然后我用网上下载的串口调试助手打开hub上的CH340却可以打开,所以问题显然出在上位机程序中,请问谁知道具体出在哪???打开串口的代码如下:
通过USB HUB连接电脑条件下:
CString rate = _T("115200,n,8,1");//波特率,无校验,8数据位,1停止位
mscom.put_CommPort(17);        //选择串口,其中17是通过USB集线器连接电脑得到的串口号
mscom.put_InputMode(1);                        //设置输入方式为二进制方式
mscom.put_Settings(rate);                //波特率115200,8数据位,无校验,1个停止位
mscom.put_InputLen(1024);                //设置当前接收区数据长度为1024
mscom.put_RThreshold(1);                        //缓冲区一个字符引发事件
mscom.put_RTSEnable(1);                        //设置RT允许         
mscom.put_PortOpen(true);                //打开串口,此处异常,提示提示invalid port number。。




直接连接电脑USB条件下:
CString rate = _T("115200,n,8,1");//波特率,无校验,8数据位,1停止位
mscom.put_CommPort(11);        //选择串口,其中11是直接连接电脑,不经过USB hub时产生的串口号
mscom.put_InputMode(1);                        //设置输入方式为二进制方式
mscom.put_Settings(rate);                //波特率115200,8数据位,无校验,1个停止位
mscom.put_InputLen(1024);                //设置当前接收区数据长度为1024
mscom.put_RThreshold(1);                        //缓冲区一个字符引发事件
mscom.put_RTSEnable(1);                        //设置RT允许         
mscom.put_PortOpen(true);                //打开串口,此时打开正常,可以收发数据



回复

使用道具 举报

发表于 2017-3-28 17:48:09 | 显示全部楼层
那就不要接在集线器啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-29 10:25:44 | 显示全部楼层
flyleaf 发表于 2017-3-28 17:48
那就不要接在集线器啊

需要用集线器
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-4 22:01 , Processed in 0.026985 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表