文档详情

串口操作API 详解.doc

发布:2017-12-17约2.83万字共25页下载文档
文本预览下载声明
++串口API应用? [嵌入式] 发布时间:2008-06-14 12:50:15 ? /*********************************************************************************************** ??????????initialSerial 功能:串口初始化 参数:无 返回:无 ***********************************************************************************************/ void initialSerial()?? //串口初始化 { ?char szComParams[50]; ?DCB dcb; ?char *m_com;?char *m_baud;?char *m_jiaoyan; ??? m_com=Com1; ?m_baud=1200; ?m_jiaoyan=E; ?COMMTIMEOUTS CommTimeOuts; ?m_hIDComDev = NULL; ?m_hIDComDev = CreateFile(m_com, GENERIC_READ|GENERIC_WRITE, 0, NULL,? ???????? OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);? //打开串口 ?if(m_hIDComDev==INVALID_HANDLE_VALUE) ?{ ??AfxMessageBox(打开串口错误0,请检查!); ??goto endd; ?} ?if(m_hIDComDev ==(HANDLE) -1) ?{ ??AfxMessageBox(打开串口错误,请检查!); ??goto endd; ?} ?SetCommTimeouts(m_hIDComDev, CommTimeOuts);? //串口超时配置 ?CommTimeOuts. ReadIntervalTimeout=0xFFFFFFFF; ?CommTimeOuts. ReadTotalTimeoutMultiplier = 0; ?CommTimeOuts. ReadTotalTimeoutConstant =5000; ?CommTimeOuts. WriteTotalTimeoutMultiplier = 0; ?CommTimeOuts. WriteTotalTimeoutConstant = 5000; ?PurgeComm(m_hIDComDev, PURGE_TXABORT|PURGE_RXABORT|PURGE_TXCLEAR|PURGE_RXCLEAR ) ; ?m_com=Com1:38400,E,8,1; ?wsprintf(szComParams, m_com);?? //设置串口参数 ?dcb. DCBlength = sizeof(DCB); ?GetCommState(m_hIDComDev, dcb);// ?int baud; ?baud = atoi(m_baud); ?dcb. BaudRate = baud;?? //设置波特率? ?dcb. ByteSize= 8; //设置校验字节 ?if ((!SetCommState(m_hIDComDev, dcb))||(!SetupComm(m_hIDComDev,10000,10000)))//设置串口和收发缓冲器的大小 ?? ?{ ??DWORD dwError = GetLastError(); ??CloseHandle(m_hIDComDev); ?} ?PurgeComm(m_hIDComDev,PURGE_RXCLEAR|PURGE_TXCLEAR|PURGE_TXABORT|PURGE_RXABORT);//清收发缓冲器 endd: ; } /************************************************************************************************ ???????????SendData 功能:发送数据给串口 参数:?buff发送的数据 ??send_length?? 长度 返回:? 成功 1? 失败? 0 ************************************************************************************************/ DWORD SendData( unsigned char buff[],int send_length)??? //发
显示全部
相似文档