VS2010中使用MSCOMM的串口通信问题

时间:2022-09-06 10:31:45
刚刚开始工作,方向是电气,部门老大布置了任务,做一个串口,在网上找了很多教程,但是很多都没有数据位、停止位和奇偶校验位,于是自己添加,但是这个只是在对话框里加进去了显示面,实际上并没起什么作用,然后修改了一下程序,加了几句进去:
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);         //打开串口

但是运行结果是串口没办法打开了 VS2010中使用MSCOMM的串口通信问题
我自己看得结果应该是str1 = str1+','+str4+','+str2+','+str3;  这句的问题,但是具体是什么问题就不知道了,还请各位大神解惑 VS2010中使用MSCOMM的串口通信问题 VS2010中使用MSCOMM的串口通信问题  之前没怎么学过软件,可能有些常识问题不太懂,见谅!! VS2010中使用MSCOMM的串口通信问题

4 个解决方案

#1


"COM1" 不叫 “ COM 1
即combo 中的 字符 不是 settings要的 !

#2


引用 1 楼 schlafenhamster 的回复:
"COM1" 不叫 “ COM 1
即combo 中的 字符 不是 settings要的 !


不太懂什么意思,是str1的偏移错误吗?我就是在这个错误上找不到正确的应该是怎样的了。

#3


确实是str1 = str1+','+str4+','+str2+','+str3;  这句话的问题,因为m_Comm.put_Settings()函数的标准形参格式是:
m_Comm.put_Settings("9600,n,8,1");//传输参数
其中第2个形参是 小写的n,写成None的话就错了。
改一下就好

#4


引用 3 楼 rxguoblp 的回复:
确实是str1 = str1+','+str4+','+str2+','+str3;  这句话的问题,因为m_Comm.put_Settings()函数的标准形参格式是:
m_Comm.put_Settings("9600,n,8,1");//传输参数
其中第2个形参是 小写的n,写成None的话就错了。
改一下就好


果然好了,多谢 VS2010中使用MSCOMM的串口通信问题,意思是只能用这一个类型的么。。。

#1


"COM1" 不叫 “ COM 1
即combo 中的 字符 不是 settings要的 !

#2


引用 1 楼 schlafenhamster 的回复:
"COM1" 不叫 “ COM 1
即combo 中的 字符 不是 settings要的 !


不太懂什么意思,是str1的偏移错误吗?我就是在这个错误上找不到正确的应该是怎样的了。

#3


确实是str1 = str1+','+str4+','+str2+','+str3;  这句话的问题,因为m_Comm.put_Settings()函数的标准形参格式是:
m_Comm.put_Settings("9600,n,8,1");//传输参数
其中第2个形参是 小写的n,写成None的话就错了。
改一下就好

#4


引用 3 楼 rxguoblp 的回复:
确实是str1 = str1+','+str4+','+str2+','+str3;  这句话的问题,因为m_Comm.put_Settings()函数的标准形参格式是:
m_Comm.put_Settings("9600,n,8,1");//传输参数
其中第2个形参是 小写的n,写成None的话就错了。
改一下就好


果然好了,多谢 VS2010中使用MSCOMM的串口通信问题,意思是只能用这一个类型的么。。。