MScomm控件问题

kusheng176 2010-09-10 12:53:21
想问一下,用MScomm控件如何接收16进制数?我用了下面的程序,怎么接收不到数据?
VARIANT variant_inp;
COleSafeArray safearray_inp ;
LONG len,k ;
BYTE rxdata [2048] ; //设置BYTE 数组An 8 - bit integerthat is not signed.
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=*(int * ) (rxdata+k) ;
strtemp.Format ("%02x",bt);//将字符送入临时变量strtemp存放
m_display+=strtemp; //加入接收编辑框对应字符串
}
}
...全文
41 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
solomon_大卫 2010-09-10
  • 打赏
  • 举报
回复
这个很简单 vc可以单步调试的,你看看这个函数能不进啊
djyrsty 2010-09-10
  • 打赏
  • 举报
回复
你这段代码是在接收函数里的吧,你设置下断点看有没有进入到接收函数,就是你有没有发送数据过来?

27,382

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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