vc通过串口显示单片机发送的数字

来源:百度知道 编辑:UC知道 时间:2024/05/26 16:14:54
我想通过串口控件,单片机发送数字给PC,比如单片机程序是SBUF=0x50;
也就是说发送的是0x50,对应十进制是80;
现在怎么在vc上面把数字80给显示出来,用个编辑框,
我弄了好久都是乱码,不知道MS_Ccom.GetInput();得到的是什么数据格式的
谁能给我个接收程序,谢谢了,我急用

void CEmluatorDlg::OnOnCommMscomm1()
{
// TODO: Add your control notification handler code here

VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(m_MSComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp=m_MSComm.GetInput(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
//如果你只发送了一个0x50,那么可以直接如下做
intdata=rxdata[0];//当然你要先定义int intdata;
}

}

“VARIANT GetInput ();”及“ void SetOutput
(cons t VARIANT& newValue);” 都要使用
VARIANT 类型( 所有Idispatch::Invoke 的参
数和返回值在内部都是作为VARIANT 对象处
理的) 。
部分代码:
VARIANT