m_comb2.GetLBText(m_comb2.GetCurSel(), str1); //取得所选的字符串,并存放在str1里面
m_comb3.GetLBText(m_comb3.GetCurSel(),str2); //数据位
m_comb4.GetLBText(m_comb4.GetCurSel(),str3); //停止位
m_comb5.GetLBText(m_comb5.GetCurSel(),str4); //奇偶校验位
str1 = str1+','+str4+','+str2+','+str3;
m_mscom.put_CommPort(m_comb1.GetCurSel()+1); //选择串口
m_mscom.put_InputMode(1); //设置输入方式为二进制方式
m_mscom.put_Settings(str1); //comb2选择的波特率,无校验,8数据位,1个停止位
m_mscom.put_InputLen(1024); //设置当前接收区数据长度为1024
m_mscom.put_RThreshold(1); //缓冲区一个字符引发事件
m_mscom.put_RTSEnable(1); //设置RT允许
m_mscom.put_PortOpen(true); //打开串口
但是运行结果是串口没办法打开了
我自己看得结果应该是str1 = str1+','+str4+','+str2+','+str3; 这句的问题,但是具体是什么问题就不知道了,还请各位大神解惑 之前没怎么学过软件,可能有些常识问题不太懂,见谅!!
4 个解决方案
#1
"COM1" 不叫 “
COM 1”
即combo 中的 字符 不是 settings要的 !
即combo 中的 字符 不是 settings要的 !
#2
不太懂什么意思,是str1的偏移错误吗?我就是在这个错误上找不到正确的应该是怎样的了。
#3
确实是str1 = str1+','+str4+','+str2+','+str3; 这句话的问题,因为m_Comm.put_Settings()函数的标准形参格式是:
m_Comm.put_Settings("9600,n,8,1");//传输参数
其中第2个形参是 小写的n,写成None的话就错了。
改一下就好
m_Comm.put_Settings("9600,n,8,1");//传输参数
其中第2个形参是 小写的n,写成None的话就错了。
改一下就好
#4
果然好了,多谢 ,意思是只能用这一个类型的么。。。
#1
"COM1" 不叫 “
COM 1”
即combo 中的 字符 不是 settings要的 !
即combo 中的 字符 不是 settings要的 !
#2
不太懂什么意思,是str1的偏移错误吗?我就是在这个错误上找不到正确的应该是怎样的了。
#3
确实是str1 = str1+','+str4+','+str2+','+str3; 这句话的问题,因为m_Comm.put_Settings()函数的标准形参格式是:
m_Comm.put_Settings("9600,n,8,1");//传输参数
其中第2个形参是 小写的n,写成None的话就错了。
改一下就好
m_Comm.put_Settings("9600,n,8,1");//传输参数
其中第2个形参是 小写的n,写成None的话就错了。
改一下就好
#4
果然好了,多谢 ,意思是只能用这一个类型的么。。。