如图所示:
//串口响应函数
LONG CSerialPortTestDlg::OnComm(WPARAM ch, LPARAM port)
{
m_strEditReceiveMsg += ch;
UpdateData(FALSE); //将接收到的字符显示在接收编辑框中
return 0;
}
//打开串口
void CSerialPortTestDlg::OnButtonOpen()
{
int nPort=m_ctrlComboComPort.GetCurSel()+1; //得到串口号,想想为什么要加1
if(m_SerialPort.InitPort(this, nPort, 9600,'N',8,1,EV_RXFLAG | EV_RXCHAR,512))
{
m_SerialPort.StartMonitoring();
m_bSerialPortOpened=TRUE;
}
else
{
AfxMessageBox("没有发现此串口或被占用");
m_bSerialPortOpened=FALSE;
}
GetDlgItem(IDC_BUTTON_OPEN)->EnableWindow(!m_bSerialPortOpened);
GetDlgItem(IDC_BUTTON_CLOSE)->EnableWindow(m_bSerialPortOpened);
}
//关闭串口
void CSerialPortTestDlg::OnButtonClose()
{
// TODO: Add your control notification handler code here
m_SerialPort.ClosePort();//关闭串口
m_bSerialPortOpened=FALSE;
GetDlgItem(IDC_BUTTON_OPEN)->EnableWindow(!m_bSerialPortOpened);
GetDlgItem(IDC_BUTTON_CLOSE)->EnableWindow(m_bSerialPortOpened);
}
//发送
void CSerialPortTestDlg::OnButtonSend()
{
// TODO: Add your control notification handler code here
if(!m_bSerialPortOpened) return; //检查串口是否打开
UpdateData(TRUE); //读入编辑框中的数据
m_SerialPort.WriteToPort((LPCTSTR)m_strEditSendMsg);//发送数据
}
此函数是用SerialPort类写的
问题:为什么点击发送按钮,在接受端没有显示,而且那个串口响应函数根本就没有响应过????
代码下载地址:http://download.csdn.net/detail/bigtree_mfc/8098351