VC++中通过mscomm控件,用什么函数读取返回到串口的信息
具体问题是这样:通过串口变量调用setoutput函数对串口发送指令,实现电机的一系列移动,完毕后电机返回“ok”字符到串口,通过什么函能够读取“ok”字符?谢谢...
具体问题是这样:通过串口变量调用setoutput函数对串口发送指令,实现电机的一系列移动,完毕后电机返回“ok”字符到串口,通过什么函能够读取“ok”字符?
谢谢 展开
谢谢 展开
3个回答
展开全部
这是我写的接收函数,你看看
OnOnCommCommctrl()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
//设置接收BYTE数组
BYTE rxdata[2048];
CString strtemp;
if(bReceive)
{
//事件值是2,表示接收缓冲区内有字符
if(m_Com.GetCommEvent()==2)
{
//读缓冲区
variant_inp=m_Com.GetInput();
//转换数值类型
safearray_inp=variant_inp;
//得到有效数据长度
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); //字符型
if(m_nOutPutMode == 2)
strtemp.Format("%02X ",bt); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
else
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
// Receive2 = Receive2 + strtemp; //加入接收编辑框对应字符串
}
}
}
//更新编辑框内容
UpdateData(FALSE);
}
OnOnCommCommctrl()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
//设置接收BYTE数组
BYTE rxdata[2048];
CString strtemp;
if(bReceive)
{
//事件值是2,表示接收缓冲区内有字符
if(m_Com.GetCommEvent()==2)
{
//读缓冲区
variant_inp=m_Com.GetInput();
//转换数值类型
safearray_inp=variant_inp;
//得到有效数据长度
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); //字符型
if(m_nOutPutMode == 2)
strtemp.Format("%02X ",bt); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
else
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
// Receive2 = Receive2 + strtemp; //加入接收编辑框对应字符串
}
}
}
//更新编辑框内容
UpdateData(FALSE);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询