没味儿 2020-09-07 19:39 采纳率: 0%
浏览 52

RS232--电子称--通讯问题

电子称RS232测试。参数:
波特率:2400

数据位:7

奇偶校验:Even

停止位:2
用串口助手打开串口,发送“W",可以正常收到重量消息,于是想自己用MFC写一个获取重量的程序。

函数:

void FunRs232()
{
      // 1. 创建文件
          HANDLE hFile = CreateFile(m_sCom, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);
      if(INVALID_HANDLE_VALUE == hFile)
        {
                        MessageBox("CreateFile");
                        CloseHandle(hFile);
                        return;
            }

            // 2. 设置串口
            DCB dcb;
          GetCommState(hFile, &dcb);
            dcb.BaudRate = CBR_2400 ;
            dcb.ByteSize = 7;
            dcb.Parity   = EVENPARITY;
            dcb.StopBits = TWOSTOPBITS;
            if(! SetCommState(m_hFile, &dcb))
          {
                    MessageBox("SetCommState", this);
                    CloseHandle(hFile);
                    return;
          }

            // 3.设置缓冲区
       if(! SetupComm(m_hFile, 512, 256))
       {
              MessageBox("设置缓冲区");
              return;
       }

       // 4.设置读写超时时间
        COMMTIMEOUTS  CommTimeouts;
        CommTimeouts.ReadIntervalTimeout = 1000;
        CommTimeouts.ReadTotalTimeoutMultiplier = 1000;
        CommTimeouts.ReadTotalTimeoutConstant = 1000;
        CommTimeouts.WriteTotalTimeoutMultiplier = 1000;
        CommTimeouts.WriteTotalTimeoutConstant = 1000;
        if(! SetCommTimeouts(m_hFile, &CommTimeouts))
        {
             MessageBox("设置读写超时时间");
             return;
        }

         // 5. 发送重量指令
        DWORD dwHadWrite = 0;
      CString sOrder = "W";
      BOOL bRes = WriteFile(hFile, (LPCVOID)sOrder, sOrder.GetLength(), &dwHadWrite, NULL);

        // 6.读取数据
        char buf[256] = {0};
        DWORD dwHadRead = 0; // 读到的字节量
        boRes = ReadFile(hFile, (LPVOID)buf, 2, &dwHadRead, NULL);
}
    问题是:读取不到重量数据. boRes一直为1,就是说ReadFile()是成功的,但是dwHadRead一直是0,buf也没任何内容,不知道哪里出了问题,求大神飘过.
  • 写回答

1条回答 默认 最新

  • dabocaiqq 2020-09-08 08:31
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘