资源描述:
《串口操作API 详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、++串口API应用 [嵌入式]发布时间:2008-06-1412:50:15 /*********************************************************************************************** initialSerial功能:串口初始化参数:无返回:无***********************************************************************************************/voidinitialS
2、erial() //串口初始化{ charszComParams[50]; DCBdcb; char*m_com; char*m_baud; char*m_jiaoyan; m_com="Com1"; m_baud="1200"; m_jiaoyan="E"; COMMTIMEOUTSCommTimeOuts; m_hIDComDev=NULL; m_hIDComDev=CreateFile(m_com,GENERIC_READ
3、GENERIC_WRITE,0,NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NOR
4、MAL,NULL); //打开串口 if(m_hIDComDev==INVALID_HANDLE_VALUE) { AfxMessageBox("打开串口错误0,请检查!"); gotoendd; } if(m_hIDComDev==(HANDLE)-1) { AfxMessageBox("打开串口错误,请检查!"); gotoendd; } SetCommTimeouts(m_hIDComDev,&CommTimeOuts); //串口超时配置 CommTimeOuts.ReadIntervalTimeout="0xFFFFFFFF"; CommT
5、imeOuts.ReadTotalTimeoutMultiplier=0; CommTimeOuts.ReadTotalTimeoutConstant=5000; CommTimeOuts.WriteTotalTimeoutMultiplier=0; CommTimeOuts.WriteTotalTimeoutConstant=5000; PurgeComm(m_hIDComDev,PURGE_TXABORT
6、PURGE_RXABORT
7、PURGE_TXCLEAR
8、PURGE_RXCLEAR); m_com="Com1:38400,E,8,1"; wspri
9、ntf(szComParams,m_com); //设置串口参数 dcb.DCBlength=sizeof(DCB); GetCommState(m_hIDComDev,&dcb);// intbaud; baud=atoi(m_baud); dcb.BaudRate=baud; //设置波特率 dcb.ByteSize=8;//设置校验字节 if((!SetCommState(m_hIDComDev,&dcb))
10、
11、(!SetupComm(m_hIDComDev,10000,10000)))//设置串口和收发缓冲器的大小 { DWORDdwEr
12、ror=GetLastError(); CloseHandle(m_hIDComDev); } PurgeComm(m_hIDComDev,PURGE_RXCLEAR
13、PURGE_TXCLEAR
14、PURGE_TXABORT
15、PURGE_RXABORT);//清收发缓冲器endd:;}/************************************************************************************************ SendData功能:发送数据给串口参数: buff发送的数据
16、 send_length 长度返回: 成功1 失败 0************************************************************************************************/DWORDSendData(unsignedcharbuff[],intsend_length) //发送数据{ intt; DWORDdwBytesWritten; if(!WriteFile(m_hIDComDev,buff,send_length,&dwBytesWritten,NULL)) {
17、 return0; } for(t=0;t