串口接收数据格式问题

greenhoper 2009-02-18 05:12:36
最近在做vc串口通讯,现在数据发送与接收已经没问题了。倒是接收数据的时候,数据格式不知道如何处理。我接收到的数据是以字节为单位的16进制数,然后想把16进制数转为10进制并显示出来,可惜暂时还没想到该怎么转换,望大侠帮助一下!
void CNet_monitorDlg::OnComm()
{
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
CString temp;
BYTE rxdata[512];
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2)
{ variant_inp=m_ctrlComm.GetInput();
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
for(k=0;k<len;k++)
{
safearray_inp.GetElement(&k,rxdata+k);
}

for(k=0;k<len;k++)
{ strtemp=*(char*)(rxdata+k);
m_dloutputpowerstatus+=strtemp;
}
UpdateData(FALSE);
}
...全文
270 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuhudie203 2009-02-20
  • 打赏
  • 举报
回复
你想要什么结果,我看了下 1 2 楼是把0xCC转换为整型 和字符串 形式
均为10进制,难道不符合你的结果?
greenhoper 2009-02-20
  • 打赏
  • 举报
回复
感谢楼上的,都可以正常显示了!
brandnewboy 2009-02-20
  • 打赏
  • 举报
回复
用2楼的方法就可以解决,已用附件回复你!
brandnewboy 2009-02-20
  • 打赏
  • 举报
回复
发我一份吧,邮箱441814583@qq.com
greenhoper 2009-02-20
  • 打赏
  • 举报
回复
以上两位的方法我都试过了,怎么都没有正确的显示呢?
一条晚起的虫 2009-02-19
  • 打赏
  • 举报
回复
strtemp.Format("%d ", rxdata + k);
m_dloutputpowerstatus+=strtemp;
还在查 2009-02-19
  • 打赏
  • 举报
回复
CString s;
s.Format(%d,0xcc);
int t = atoi(s);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧