读书人

串口有关问题求教

发布时间: 2012-01-26 19:40:46 作者: rapoo

串口问题求教
void CCommRDlg::OnCommMscomm1()
{
// TODO: 在此处添加消息处理程序代码
VARIANT m_Input1;
COleSafeArray m_Input2;
long length,i;
BYTE data[1024];
CString str;
if(m_comm.get_CommEvent()==2)
{
m_Input1=m_comm.get_Input();
m_Input2=m_Input1;
length=m_Input2.GetOneDimSize();
for(i=0;i<length;i++)
m_Input2.GetElement(&i,data+i);
for(i=0;i<length;i++)
{
char a=*(char *)(data+i);
str.Format(_T("%c"),a);

sText+=str;
m_ReceiveData.SetWindowText(sText);



}


}
UpdateData(false);
}

void CCommRDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码

if(!m_comm.get_PortOpen())
{
m_comm.put_PortOpen(true);

}
UpdateData(true);





}

void CCommRDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
m_ReceiveData.EmptyUndoBuffer();
UpdateData(false);
}

这是我在MFC中用mscomm控件写的接受程序,
我接受传感器发来的数据,可是没有显示,请教高手

[解决办法]
http://www.yesky.com/208/1813208.shtml
http://embeded-life.blog.163.com/blog/static/105932519200941001844838/
http://hi.baidu.com/%C7%E0%C8%B80401/blog/item/c239948a9a2bd0cffc1f1072.html
参考
[解决办法]
好像是你对串口控件的设置有问题,少了不少东西,下面的是我一个程序里设置串口的代码,你参考下:
if(m_Com.GetPortOpen())
m_Com.SetPortOpen(FALSE);

m_Com.SetCommPort(m_nPort); //选择com1
if( !m_Com.GetPortOpen())
m_Com.SetPortOpen(TRUE);//打开串口
else
AfxMessageBox("cannot open serial port");

m_Com.SetSettings(m_strSettings); //波特率9600,无校验,8个数据位,1个停止位
m_Com.SetRThreshold(1);
//参数1表示每当串口接收缓冲区中有多于或等于1个字符时将引发一个接收数据的OnComm事件
m_Com.SetInputMode(1);
m_Com.SetInputLen(0); //设置当前接收区数据长度为0
m_Com.GetInput();//先预读缓冲区以清除残留数据

读书人网 >VC/MFC

热点推荐