zoukankan      html  css  js  c++  java
  • 大家帮忙看看,不会即使显示串口缓冲数据

     1 // Comm.cpp : 定义控制台应用程序的入口点。
    2 //
    3
    4 #include "stdafx.h"
    5 #include <iostream>
    6 #include <Windows.h>
    7 using namespace std;
    8
    9 int _tmain(int argc, _TCHAR* argv[])
    10 {
    11 HANDLE hCom;
    12 char lpInBuffer[100];
    13 DWORD dwBytesMaxRead=100,dwBytesOfRead;
    14 static COMSTAT ComStat;
    15 DWORD dwErrorFlags;
    16 BOOL bReadStat;
    17 BOOL isOpened;
    18 DWORD errorMessage;
    19 OVERLAPPED m_osRead;
    20 memset(&m_osRead,0,sizeof(OVERLAPPED));
    21 m_osRead.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);
    22 dwBytesOfRead=min(dwBytesMaxRead,(DWORD)ComStat.cbInQue);
    23 //打开串口
    24 hCom=CreateFile(_T("COM2"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
    25 if(hCom==INVALID_HANDLE_VALUE)
    26 {
    27 std::cout<<"open com port fail!"<<std::endl;
    28 }
    29 else
    30 {
    31 isOpened=TRUE;
    32 std::cout<<"open com successful"<<'\n'<<"now listen....."<<std::endl;
    33 }
    34
    35
    36 while(isOpened)
    37 {
    38 DWORD dwEvtMask=0;
    39 SetCommMask(hCom,EV_RXCHAR|EV_TXEMPTY);
    40 WaitCommEvent(hCom,&dwEvtMask,&m_osRead);
    41 if((dwEvtMask&EV_RXCHAR)==EV_RXCHAR)
    42 {
    43 ClearCommError(hCom,&dwErrorFlags,&ComStat);
    44 if(ComStat.cbInQue>0)
    45 {
    46
    47 if(!ReadFile(hCom,lpInBuffer,dwBytesMaxRead,&dwBytesOfRead,&m_osRead))
    48 {
    49 std::cout<<"read com port fail!"<<std::endl;
    50 errorMessage=GetLastError();
    51 std::cout<<errorMessage;
    52 return 1;
    53 }
    54 else
    55 {
    56 errorMessage=GetLastError();
    57 std::cout<<errorMessage;
    58 lpInBuffer[dwBytesOfRead]='\0';//结束字符串;
    59 std::cout<<lpInBuffer<<std::endl;
    60 continue;
    61 }
    62 }
    63 else
    64 std::cout<<"no data\n"<<std::endl;
    65
    66
    67 }
    68 PurgeComm(hCom,PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR);
    69 system("pause");
    70 return 0;
    71 }
    72
    73 }
  • 相关阅读:
    【BJOI2018】求和
    【洛谷P1613】跑路
    【NOI2001】食物链
    【NOI2002】银河英雄传说
    【POJ1456】Supermarket
    【NOIP2013】货车运输
    【CH#56C】异象石
    【POJ3417】Network
    【APIO2010】巡逻
    【CH6201】走廊泼水节
  • 原文地址:https://www.cnblogs.com/sosoman/p/2365571.html
Copyright © 2011-2022 走看看