博士
最后登录1970-1-1
在线时间 小时
注册时间2015-10-31
|
本帖最后由 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); //打开串口,此时打开正常,可以收发数据
|
|