您的位置:首页 > 其它

MSCOMM通信控件接收数据

2009-03-09 08:42 239 查看
从串口接收数据,显示在Edit Box里:
void CMyDlg::OnOnCommMscomm1()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len, k;
BYTE rxdata[2048];
CString strtemp;
if (m_ctrlComm.GetCommEvent() == 2) // 事件值为2表示接受缓冲区内有字符
{
variant_inp = m_ctrlComm.GetInput(); // 读缓冲区
safearray_inp = variant_inp; // VARIANT型变量转换为COleSafeArray型变量
len = safearray_inp.GetOneDimSize(); // 得到数据有效长度
for (k = 0; k < len; k++)
safearray_inp.GetElement(&k, rxdata + k); // 转换为BYTE型数组
for (k = 0; k < len; k++) // 将数组转换为CString型变量
{
BYTE bt = *(char*)(rxdata + k); // 字符型
// if (m_ctrlHexDisplay.GetCheck())
strtemp.Format("%02X ", bt); // 将字符以16进制方式送入临时变量strtemp存放,注意这里加入一个空格
// else
// strtemp.Format("%c", bt); // 将字符送入临时变量strtemp存放
m_device_num_list += strtemp; // 加入接收编辑框对应字符串
}
}
UpdateData(FALSE); // 更新编辑框内容
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: