haorenlei457 2015-12-06 06:14 采纳率: 0%
浏览 1462

c++ PC通过串口发送Versions命令给处于FTM模式的手机,希望得到手机版本信息

c++window api 实现pc与处于FTM模式的手机串口通信,处于FTM模式的手机通过usb线连接 PC,这根usb线是5ping的线,连上手机自动进入FTM模式,当我们向串口中写入Versions字符串时,从串口读出的是Versions字符串,而不是我们希望得到的手机版本信息,后来发现向串口写什么,从串口读取的就是什么,

    OVERLAPPED m_osRead;
    memset(&m_osRead,0,sizeof(OVERLAPPED));
    m_osRead.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);

    COMSTAT ComStat;
    DWORD dwErrorFlags;

    char str[1024];
    memset(str,'\0',1024);

    DWORD dwBytesRead=1024;//弄竊计
    BOOL bReadStat;

    ClearCommError(hcom,&dwErrorFlags,&ComStat);

    dwBytesRead=min(dwBytesRead, (DWORD)ComStat.cbInQue);

    bReadStat=ReadFile(hcom,str,dwBytesRead,&dwBytesRead,&m_osRead);

    PostMessage((unsigned int)str,0,0);

    if(!bReadStat)
    {AfxMessageBox("tom test");
        if(GetLastError()==ERROR_IO_PENDING)    //GetLastError()函数返回ERROR_IO_PENDING,表明串口正在进行读操作
        {   
            WaitForSingleObject(m_osRead.hEvent,5000);
            //使用WaitForSingleObject函数等待,直到读操作完成或延时已达到2秒钟
            //当串口读操作进行完毕后,m_osRead的hEvent事件会变为有信号
        }
    }

    PurgeComm(hcom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR);
    AfxMessageBox(str);
    UpdateData(FALSE);
  • 写回答

1条回答 默认 最新

  • 普通网友 2015-12-07 01:37
    关注

    调试看看哪里出错了.....

    评论

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突