请问,我编的程序串口为呵收不到东西

redcell856856 2009-02-09 04:01:38
情况是这样的:我用两个设备接入后分配的COM口分别是COM6,COM12(USB借口),我用自己的程序发个包,“串口大师”可以收到,但用“串口大师”发,我的程序就收不到,调试过程中到这段variant_inp = m_com.GetInput();就跳出来了[variant_inp是(VARIANT)类型的]。两个设备没问题,COM口也完好,我用VS.NET编的,谢谢哪位高人指点下?
...全文
81 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
redcell856856 2009-02-10
  • 打赏
  • 举报
回复
太有戏剧性了,搞了半天是我电脑上有毒,影响了我接收数据
yuhaozx 2009-02-09
  • 打赏
  • 举报
回复
学习
redcell856856 2009-02-09
  • 打赏
  • 举报
回复
现在直接连1个设备USB接口(COM6),我用自己的程序发个包文,它不会回复给我对应的包文,“串口大师”发个包文给它,它可以回复对应的包文,调试自己的程序过程中到这段variant_inp = m_com.GetInput();就跳出来了[variant_inp是(VARIANT)类型的]。我改为COM1自发自收,可以收到自己发的东西
redcell856856 2009-02-09
  • 打赏
  • 举报
回复

我用两个串口调试大师互相传输都能收到,

void CCABLE_PS2Dlg::OnBnClickedButton3()
{
if(m_com.GetPortOpen())
m_com.SetPortOpen(FALSE);
m_com.SetCommPort(6);
if( !m_com.GetPortOpen())
{
m_com.SetPortOpen(TRUE);
}
m_com.SetSettings("9600,n,8,1"); m_com.SetRThreshold(1); m_com.SetInputMode(1);
m_com.SetInputLen(0); m_com.GetInput();

if(cp210x_count!=0)
{
CByteArray arraySend;
BYTE qq [6];
qq[0]=0x80;//STX
qq[1]=0x01;//SIZE
qq[2]=0xFE;//~SIZE
qq[3]=0x00;//command
qq[4]=0x81;//size L
qq[5]=0xFE;//size H

arraySend.RemoveAll();
arraySend.SetSize(6);
for(int d=0;d<6;d++)
{
arraySend.SetAt(d,qq[d]);
}

m_com.SetOutput(COleVariant(arraySend));
}
else
{
AfxMessageBox("请插入设备");
}
}




void CCABLE_PS2Dlg::OnCommMscomm1()
{

VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[8192];
CString strtemp;

if(bReceive)
{

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
for(k=0;k<len;k++)
{
BYTE bt=*(char*)(rxdata+k);
strtemp.Format("%02X ",bt);
m_edit_win = m_edit_win + strtemp;
}
m_edit_win += "\r\n";
}
}
UpdateData(FALSE);
}
redappleji 2009-02-09
  • 打赏
  • 举报
回复
不明白,单纯看你给的这部分应该是不会有问题。
帮你顶一下了。

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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