我依照网络上的教程,用vs2013编写了个串口通信,变异无误后,进行数据测试阶段,发现.exe文件出现invalid property value!望大神帮我解答一下、感谢。
代码为:
// TODO: 在此添加额外的初始化代码
// 串口选择组合框
CString str;
int i;
for (i = 0; i<15; i++)
{
str.Format(_T("COM %d"), i + 1); m_conb1.InsertString(i, str);
}
m_conb1.SetCurSel(0); // 预置 COM口
// 波特率选择组合框
CString str1[] = { _T("300"), _T("600"), _T("1200"), _T("2400"), _T("4800"), _T("9600"),
_T("19200"), _T("38400"), _T("43000"), _T("56000"), _T("57600"), _T("115200") };
for (int i = 0; i<12; i++)
{
int judge_tf = m_conb2.AddString(str1[i]);
if ((judge_tf == CB_ERR) || (judge_tf == CB_ERRSPACE))
MessageBox(_T("build baud error!"));
}
m_conb2.SetCurSel(11); // 预置波特率为 "9600"
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CMFCA串口1Dlg::OnBnClickedButtonOpen()
{
// TODO: 在此添加控件通知处理程序代码
CString str, str1, n; // 定义字符串
GetDlgItemText(IDC_BUTTON_OPEN, str);
CWnd *h1;
h1 = GetDlgItem(IDC_BUTTON_OPEN); // 指向控件的 caption
if (!m_mscom.get_PortOpen())
{
m_conb1.GetLBText(m_conb1.GetCurSel(), str1); // 取得所选的字符串,并存放在 str1 里面
str1 = str1 + ',' + 'n' + ',' + '8' + ',' + '1'; // 这句话很关键
m_mscom.put_CommPort((m_conb1.GetCurSel() + 1)); // 选择串口
m_mscom.put_InputMode(1); // 设置输入方式为二进制方式
m_mscom.put_Settings(str1); // 波特率为(波特率组 á合框)无校验, 8数据位, 1个停止位
m_mscom.put_InputLen(1024); // 设置当前接收区数据长度为 1024
m_mscom.put_RThreshold(1); // 缓冲区一个字符引发事件
m_mscom.put_RTSEnable(1); // 设置 RT允许
m_mscom.put_PortOpen(true); // 打开串口
if (m_mscom.get_PortOpen())
{
str = _T(" 关闭串口 ");
UpdateData(true); h1->SetWindowText(str); // 改变按钮名称为‘’关闭串口 ”
}
}
else
{
m_mscom.put_PortOpen(false);
if (str != _T("打开串口 "))
{
str = _T(" 打开串口 ");
UpdateData(true);
h1->SetWindowText(str); // 改变按钮名称为打开串口
}
}
}
问题图片: