求助:在 MFC 上用 MSComm 控件编写串口程序,并想将接收到的字符转换成十进制,进行计算
真心求教:在MFC上用MSComm控件编写串口程序,并想将接收到的字符转换成十进制,进行计算,例如我串口接收到的数据是这样的数据4F 03 4F 03 0C 03 3C 03 5F 07 .............一直接收的是这种数据,现在我想要进行计算公式是:((低字节的十进制数)*256+(高字节的十进制数))/10;其中头两个是高字节4F,4F,0C,......后两个是低字节03,93,03,07.......我刚用MFC对其函数一点也不熟悉,由于工作急需来不及认真学习就要编写这个程序,我现在每天都在恶补知识,现在哪位大神帮忙解决一下,真的十分十分感谢,十二分的感激,下面是我在网友那里借鉴的串口程序,程序能够正常通信,剩下的请各位大神帮帮忙指点指点,多谢多谢!void CSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048];//设置BYTE数组
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++)
{
//BYTE bt=*(char*)(rxdata+k);//字符型
//strtemp.Format("%C",bt);//将字符送入临时变量strtemp存放
BYTE bt=*(int*)(rxdata+k);//整数型
strtemp.Format("%C",bt);//将字符送入临时变量strtemp存放
m_strEditRXData+=atoi(strtemp);//加入接收编辑框对应字符串
}
}
UpdateData(FALSE);//更新编辑框内容
}