【求助】关于2个串口读取的问题,谢谢大家
1.计算机中COM1已经读取到一个设备的串口数据,方法用得是设备提供的开发包读取的。因为要实时读取数据,所以用一个多媒体定时器,在ShowMessage()中处理,已经实现该功能。
2.还要读读取另外一个串口设备,设备占用COM2端口,原来用的第三方类实现(SerialPort类),在添加到程序中,发现该类的处理数据部分是这样定义的:
.h中定义
afx_msg void OnReceiveChar(UINT ch, LONG port); /////
.cpp定义
BEGIN_MESSAGE_MAP(CCOMCOMDlg, CDialog)
//{{AFX_MSG_MAP(CCOMCOMDlg)
ON_MESSAGE(WM_COMM_RXCHAR,OnReceiveChar)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
CString CCOMCOMDlg::DevideHexChar(char HexChar)
{
CString result=_T("");
int temp=(HexChar&0xF0)>>4;
if(temp<10)
result+=(temp+'0');
else
result+=(temp+'A'-10);
temp=HexChar&0x0F;
if(temp<10)
result+=(temp+'0');
else
result+=(temp+'A'-10);
return result;
}
void CCOMCOMDlg::OnReceiveChar(UINT ch, LONG port) //读取串口数据
{
UpdateData(true);
m_strReceive=DevideHexChar(ch); //m_strReceive是读到的串口数据。
}
3.目前程序中纯在一个多媒体定时器和实时读串口的函数。两个同时用出现了错误。原来只单独用读取串口的(SerialPort类)工作正常。
最终的想法想把读串口的数据加入到ShowMessage()(多媒体定时器中),就可以同时读两个串口设备了,该如何更改呢?谢谢大家了