我想通过串口控件,单片机发送数字给PC,比如单片机程序是SBUF=0x50;
也就是说发送的是0x50,对应十进制是80;
现在怎么在vc上面把数字80给显示出来,用个编辑框,
我弄了好久都是乱码,不知道MS_Ccom.GetInput();得到的是什么数据格式的
谁能给我个接收程序,谢谢了,我急用
vc通过串口显示单片机发送的数字
答案:2 悬赏:40
解决时间 2021-03-11 15:26
- 提问者网友:纹身骑士
- 2021-03-11 12:18
最佳答案
- 二级知识专家网友:陪伴是最长情的告白
- 2021-03-11 13:03
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
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
//如果你只发送了一个0x50,那么可以直接如下做
intdata=rxdata[0];//当然你要先定义int intdata;
}
}
{
// 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
//如果你只发送了一个0x50,那么可以直接如下做
intdata=rxdata[0];//当然你要先定义int intdata;
}
}
全部回答
- 1楼网友:一个很哇塞的汉子
- 2021-03-11 14:06
“VARIANT GetInput ();”及“ void SetOutput
(cons t VARIANT& newValue);” 都要使用
VARIANT 类型( 所有Idispatch::Invoke 的参
数和返回值在内部都是作为VARIANT 对象处
理的)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯